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

Proposal #13: Structure Sharing in Arguments



    Similarly, a function that takes a &REST argument should not
    destructively modify it because in some implementations its top-level
    list structure might share with a list that the user gave as the last
    argument to APPLY.

This clarification will imply that any accurate account of the semantics
of Common Lisp must explain the procedure call mechanism in terms of
linked lists.  It will imply that people who care about portable code
must make a habit of copying every &REST argument themselves, despite
the fact that in any reasonable implementation the &REST argument will
have been freshly consed.  It will force people who care about efficiency
to write non-portable code.  This clarification is a very bad thing.

Does anyone claim that this clarification is a good thing?

Peace,
William Clinger
Tektronix Computer Research Laboratory