[Openmcl-devel] Shortcircuiting of argument evaluation in #'<

Stas Boukarev stassats at gmail.com
Wed Jan 9 07:49:40 PST 2013


Ron Garret <ron at flownet.com> writes:

> IMO this is a bug in the spec, not CCL.  (< a b c ...) ought to mean
> (and (< a b) (< b c) ...) , not (let* ((a_ a) (b_ b) ...) (< a_ b_ c_
> ...)).  Putting side-effecting code inside a comparison operator is a
> Truly Horrible Idea (which is even worse than the previously
> trademarked Really Bad Idea) and any programmer who wants to write
> code that relies on it ought to bear the burden of expanding his code
> into the corresponding LET* rather than impose the burden of running
> dead code on the entire extant code base.  That is too high a price to
> pay.  The spec is not scripture.
Are you being serious? < is an ordinary function, and the order of argument
evaluation and guarantee of evaluation is exactly prescribed by the
standard. What's the big idea of randomly disregarding the standard?

-- 
With best regards, Stas.



More information about the Openmcl-devel mailing list