Re: [stack] What does "concatenative" actually mean?
Don Groves <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
On Mar 6, 2009, at 12:19 AM, spir wrote: > Le Thu, 05 Mar 2009 15:16:55 -0800, > William Tanksley <[email protected]> s'exprima ainsi: > >>> Really? Does quotation not violate this? >> >> That's fair to ask... I'm not sure whether quotation is an >> "operation" >> as such. I think it's a very academic question, since I think >> "compositional" is of only pedagogical value. > > I would say that quotation is one aspect, or level, or kind, of meta- > programming. It's taking a bit of program as object of the > programitself, meaning as data. Like meta-linguistics [thus the term > 'quotation' indeed (note that that is a quotation, and this is meta- > linguistic discourse, too, and... ;-)]: > > <<"'Joke' has 3 phonemes and 4 letters.", she said.>> > > From this point of view, quotations, or similar tools, are not the > same as plain programming where the raw materials are 'real' data > only. And is afaik pretty rare in practice outside the field of > stack-based/concatenative languages. > Can a concatenative language live without quotations? In joy > quotations are the materials of combinators, hence the answer seems > to be no. > > There is something I do not understand. It seems that literal code > and word names inside quoting marks are both called quotations: > > [1 2 3] [dup *] map > > :square dup * > [1 2 3] [square] map > > Isn't there a worthful distinction here? The second version seems > analog to first-class funcs. The first one looks a bit like lambdas, > no ? Or is it really taking code "flesh" as data? Or code as data > only really happens when one can tweaks its guts like in Lisp? You may get disagreement on this point from others here but not from me. As in Lisp, you can use an anonymous function, like [dup *], or you can name it and refer to it by name and get the identical result. So, yes, I consider [dup *] to be a lambda. Also, there is nothing stopping a concatenative programmer from "tweaking the guts" just as in Lisp, because anything that can be done in a source file, or via interactive input, can also be done from inside a running program. Maybe we should call them "juxtaposed Lisps." ;-) -- don > Could a language like Joy live with only the second form? Wouldn't > it even be good practice (--> factorization). > > denis > ------ > la vita e estrany > > > ------------------------------------ > > Yahoo! Groups Links > > >