Re: [stack] are concatenative languages applicative?

Don Groves <[email protected]>
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
On Apr 24, 2008, at 3:10 PM, John Nowak wrote:

> Apologies for starting a new thread of sorts, but the "Object Cat"
> thread already had run through three or four different topics, and it
> seems like a good idea to discuss this in such a way that it'll be
> archived properly. I'd really like an answer here.
>
> First off, let me say that I'm not particularly interested in if Joy's
> 'i' is an 'eval'. This does, as Chris pointed out, seem to get us
> bogged down in implementation details. As far as I can tell, 'eval' is
> defined to be some procedure that works on code, be that code a string
> or some more structured form of data. In a language like Cat, there's
> no such code being passed around as there is in Joy, and I don't think
> there's anyone here who would say Cat isn't concatenative.
>
> What I'm interested in is this "dequotation" rule:
>
>    [$A] i  ==  $A
>
> In other words, these are all equivalent:
>
>    1 2 [3 * *] i  ==  1 2 3 * *  ==  1 [2 3] i [* *] i
>
> An important thing to note here is that this translation is just a
> rewriting of function-level code. '$A' is a function, not a value.
> This seems fundamentally different from this rule in the combinatory
> calculus, where 'x' is a *value*, not a function:
>
>    (I x)  ==  x
>
> (William already has said essentially the same thing with respect to
> operators and operands.)
>
> I guess my questions are as follows: Are concatenative languages
> applicative, and if so, what's the equivalent of '[$A] i == $A' in the
> lambda calculus?

As I understand it, the lambda calculus form  \X.E  represents an  
abstraction
(\X) and an application (E). Seems to me a straightforward reading of  
Joy's
[foo] as an abstraction and i as being/causing an application is the  
equivalence
you seek. Joy's i and lambda calculus' dot perform the same function  
in their
respective languages.

Am I the only one here who thinks the word "function" has too many  
meanings?
--
don


> ...If such a translation cannot be given, does that mean
> concatenative languages are non-applicative? If so, is there another
> term besides "concatenative" that can be used to describe their
> properties?
>
> - John
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.