From:
dmitry_n_petrov@... [mailto:
dmitry_n_petrov@...]
>2.) How must one understand
>[abc] uncons
>- as an operation applied to a string or to a list of 1 element?
As an illegal operation -- if quotations are actually strings then they're
not lists. (Although strings might be lists of characters, or may have list
operations defined on them.)
In Joy quotations are lists; in Forth, they're strings. There's no law
which says that list operations have to work on quotations.
>3.) This feature can allow one to treat programs as strings,
>dynamically created, modified, interpreted. It is not a good feature
>for a compiled language. If one uses an interpreter, it is not good,
>either, beacause it makes possible some very dirty programs, which
>tend to loose the readability of "pure" applicational languages. It is
>better to use higher-level tools (combinators) to manipulate programs
>as data.
No. The fact that strings are programs doesn't imply that programs are
strings. Think about it. Tcl made that mistake a long time ago, and it
took it a long time to recover; even now it's possible to bog down the Tcl
interpreter.
Furthermore, this rule isn't specific to strings: it's a potential problem
with ANY type of quotation.
And do I have to mention that we're not trying to make a "pure applicational
language"; we're trying to make a concatenative language, almost the
opposite of applicative. As such, we can do a LOT of things which are
either impossible or dangerous in an applicative language.
-Billy