On Thu, Dec 16, 2021 at 12:20 AM pd <[email protected]> wrote:
> This way the syntax and behaviour in picolist is not internally
> coherent, every function application must be a list but for quote, which
> can be not a list but an improper list.
>
> Maybe I'm misunderstanding something.
>
> indeed the example in picolisp reference for quote [Q (software-lab.de)
<https://software-lab.de/doc/refQ.html#quote>] seems strange to me, it
suggest you should use quote in a proper list as in all lisp:
: (quote (quote (quote a)))
-> ('('(a)))
but I think it should be written (quote . (quote . (quote . a))) to be
compatible with quote syntax in picolisp and also with the behaviour of all
lisp I know about, in any lisp you get:
: (quote (quote (quote a)))
-> (quote (quote a))
(quote (quote a)) is equal to ''a which is what you get in picolisp
with (quote . (quote . (quote . a)))
Also I think you get collateral damage, in lisp:
(eval (quote (quote (quote a)))) -> (quote a)
in picolisp:
(eval (quote (quote (quote a))))
|? ('(a))
quote -- Protected
?
regards