First let me say, I really *really* appreciate all the feedback I have had on my past articles on Cat. So far all my article submissions have been rejected....
... Congrats! Tell me which month so I can read it in print! Some notes: What is the [?] in "...very easy to create efficient implementations for [?],"? The...
Hi William, Thanks. I've responded to your comments below and already started tweaking the article as per your suggestions. ... Thanks. ... I can't say yet,...
... Definitely. You're right that they belong in the intro. ... What previous concatenative language had GOTO statements? I don't think Manfred "left them...
... Forth has BRANCH and BRANCH? Do you consider Forth a concatenative language? Either way I am talking explicitly about stack-based languages so Forth...
... i've been up and down this road so many times i'm giving names to the rocks. am i wrong in thinking that the languages we're concerned with (in this...
Stevan Apter
sa@...
Feb 10, 2008 6:39 pm
3698
... Hi Stevan, This seems more or less like the definition that majority of the group has agreed upon. In your opinion what languages other than Joy does it ...
... From: "Christopher Diggins" <cdiggins@...> To: <concatenative@yahoogroups.com> Sent: Sunday, February 10, 2008 2:00 PM Subject: Re: [stack] Cat...
Stevan Apter
sa@...
Feb 10, 2008 7:24 pm
3700
... This is a pretty good list, thank you! You left out XY. ... Yeah, that's the tricky part. I believe there are valid phrases in Forth which can't be...
I'll be quick here, as I haven't the time I wish I had. The introduction seems weak. Simplicity doesn't come from a low number of concepts. If it did, the...
John Nowak
john@...
Feb 11, 2008 1:40 am
3702
Hi John, Thanks a lot for the comments. ... Sorry about that. ... I'm a little confused: a low number of concepts seems to be the very definition of...
... What I mean to say is that a language with a few, simple concepts can have unavoidably complex implications. The language I typically cite here is Io; you...
John Nowak
john@...
Feb 11, 2008 2:43 am
3704
Briefly, just to give the correct types for functions involving first- class stacks: infra :: A {B} (B -> C) -> A {C} push :: A c {B} -> A {B c} pull...
John Nowak
john@...
Feb 11, 2008 2:53 am
3705
... That is a very lucid point. ... Good point. ... My classic example is "mapreduce". Perhaps I will throw it in. ... I understand. ... I am not sure what...
... World is just an atomic type like Int. What it means, in the case of dip, is that the function on top of the stack is called with the current world and...
John Nowak
john@...
Feb 11, 2008 4:13 am
3707
... Here's a PDF: http://theory.stanford.edu/~aiken/publications/trs/FLProject.pdf at Aiken's new location: ...
Recently, I've been thinking about what sort of macro system might be suitable for a typed concatenative language. For this discussion, I'll assume a language...
John Nowak
john@...
Feb 22, 2008 8:53 am
3709
Taking this a step further... Let's start with Kitten (Cat minus locals). Now let's also remove recursive definitions. In such a language, any definition is ...
John Nowak
john@...
Feb 22, 2008 10:29 am
3710
... I had been calling Cat + locals Kitten at one point, but this is a minor detail. ... Yes. ... Depends on your type system. In Cat "dup apply" has the type...
... You are getting very close to Q <http://q-lang.sourceforge.net>. Q is a functional programming language based directly on equational reasoning, rather than...
... I suppose this was more rhetorical. ... Of course. A system with rank-N polymorphism can handle 'dup i' properly. Unfortunately (perhaps?), we don't have...
John Nowak
john@...
Feb 23, 2008 2:14 pm
3713
... Very interesting. Unfortunately, I think the system I proposed would not actually bring me so close to Q. In particular, all of the rewriting would need be...
John Nowak
john@...
Feb 23, 2008 2:26 pm
3714
... You are incorrect. Cat infers the type as: ('a -> ('b 'c -> 'c 'b) 'a) Why would you claim otherwise? ... This is already not the case in Joy or Cat. (e.g....
Apologies if this is formatted strangely... replying via broken webmail. ... My derivation is at the end of the email. I've yet to actually use the Cat ...
john@...
Feb 23, 2008 4:37 pm
3716
... [swap] dup : ( -> ('a 'b -> 'b 'a) ('c 'd -> 'd 'c)) Notice that you are not generating new type variables for the duplicated version of swap on the stack....
... I thought this was only done in Cat when an occurs check fails. What exactly are the rules for when to generate new variables? What is the type of 'quote...
john@...
Feb 23, 2008 6:15 pm
3718
... I thought this was only done in Cat when an occurs check fails. What exactly are the rules for when to generate new variables? What is the type of 'quote...
john@...
Feb 23, 2008 6:15 pm
3719
... When you unify a polymorphic function type (e.g. one that has generic type-variables) on the left side of the arrow with a type variable, every...
... Makes sense. I figured this would probably have to be the case if quote were handled properly (which it is). Thank you for explaining. ... Agreed. ... Oi....
john@...
Feb 23, 2008 6:53 pm
3721
... It's close. I think our last discussion fruitfully concluded that a concatenative language: 1. Syntactically is concatenated from a set of primitives; 2....