Hi all, this whole discussion got ridiculously complicated.
But in fact it is so simple! A function call in PicoLisp is *always* just a single cell: +-----+------+ | Fun | Args | +-----+------+ Both Fun and Args can be anything (number, symbol or pair). If Fun is a number, the expression auto-quotes. Otherwise, while it is a symbol, its value is taken. So we end up either with a number (code pointer) or a list (EXPR, FEXPR, or a mixture of both). This is called with Args. Fun is free to do with Args what it wants. Who cares about proper or improper lists? Total freedom and power! :) 'quote' is the mother of all functions. It does nothing, and just returns Args. No need for "special forms"! ☺/ A!ex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe