[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
1) Single quote read syntax:
I once ran into a situation where I wanted 'FOO to
read as something other than (QUOTE FOO). I defined
a macro that excepted the following syntax for an
object, a component of an object, and a symbolic constant.
<object> :== symbol
<component> :== (<component name> <object>)
<constant> :== 'symbol.
Obviously, no component name could be QUOTE. I suppose I could have
redefined my read table to change the meaning of ', but I just
made the restriction that component names could be anything but QUOTE.
2) The value of T:
3) Semantics of LET:
I thing the semantics of let should be determined by the semantics
of lambda. Thus (LET ((<a> <b>)) ...) => ((lambda (<a>) ...) <b>).
If (lambda ((a b)) ...) is a single argument function whos argument
is expected to be the result of function that returns two values,
I vote for the multiple value bind interpretation. If it destructures,
I vote for the destructuring interpretation. If you want to define
a local function using labels syntax, use labels.