[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

cabbages and kings, etc

Why is it (PUSH list item) instead of (PUSH item list) as in TLisp,
Ellisp, and LispMachineLisp?  I don't know what CommonLisp and MACLisp
do.  Isn't it better to agree with the syntax of CONS than with a PDP-10
machine instruction?

It would be nice if there was something like ENFORCE (which is not
documented in the first manual draft -- is it going to change?)  which
could pass a message to ERROR.  As it stands, I don't want to use
ENFORCE to protect code because all the user gets is (ENFORCE list?
x) failed.  If I could say something like

        (ENFORCE list? x "Non-list returned to MAPCAN")

then I'd be more prone to insert lots of protective devices.

The documentation should be a bit more specific about how CONJOIN and
DISJOIN work, rather than leaving it up to the technical meaning of
the term "predicate".  That is, the manual should say that ((CONJOIN
-preds-) arg) is like (TRUE?  (*AND -(pred arg)-)), i.e., all the
arguments are evaluated and only T or NIL is returned.  Do they have
to have these properties, by the way?

Why is WITH-OUTPUT-TO-STRING so CONS-intensive?  A dozen CONSes with
no output at all (e.g., (WITH-OUTPUT-TO-STRING FOO)).  I wanted to use it
in a general any-type concatenator.

Would it be possible in future releases to mark all to-be-implemented
functions in some way so that instead of getting "NEGATE has no value"
I get either "NEGATE has name xxx" or "NEGATE not yet implemented"?
I ask this only so I can tell if something is coming, or has already
arrived under another name.