Re: Very poor Lisp performance



In article <43062cf8$0$22943$ed2619ec@xxxxxxxxxxxxxxxxxxxxxxxxxx>,
Jon Harrop <usenet@xxxxxxxxxxxxxx> wrote:
> Right. I think that's exactly the same as "Hold" in Mathematica.

Not really.

(defparameter *test* (quote (+ 2 2))) ==> *TEST* contains (+ 2 2).

test = Hold[2 + 2] ==> test contains Hold[2 + 2]

i.e., Hold "sticks" with the expression, whereas QUOTE is just a signal
to the evaluator to pass its contents through unevaluated. You can't
build something as simple as QUOTE in Mathematica because the evaluator
will keep evaluating until it stops changing - the CL QUOTE would be a
noop in the Mathematica evaluator.

Note also that CL has a very strong sense of object identity. If I say
(quote (+ 2 2)), I get the exact same (EQ) cons out that I put in. I
don't think Mathematica has anything like EQ, so I'm not sure how you'd
test to see if the Plus[2, 2] in a hold is the same Plus[2, 2] you put
in earlier.

-bcd
--
*** Brian Downing <bdowning at lavos dot net>
.



Relevant Pages

  • Re: Lisps QUOTE and Mathematicas "Hold"
    ... > Both QUOTE and Hold retain subexpressions in unevaluated form. ... >> to the evaluator to pass its contents through unevaluated. ... >> noop in the Mathematica evaluator. ...
    (comp.lang.lisp)
  • Re: Lisps QUOTE and Mathematicas "Hold"
    ... > Both QUOTE and Hold retain subexpressions in unevaluated form. ... >> to the evaluator to pass its contents through unevaluated. ... >> noop in the Mathematica evaluator. ...
    (comp.lang.lisp)
  • Re: Lisps QUOTE and Mathematicas "Hold"
    ... Both QUOTE and Hold retain subexpressions in unevaluated form. ... > to the evaluator to pass its contents through unevaluated. ... > noop in the Mathematica evaluator. ...
    (comp.lang.lisp)
  • Re: Lisps QUOTE and Mathematicas "Hold"
    ... Jon Harrop wrote: to the evaluator to pass its contents through unevaluated. ... You can't build something as simple as QUOTE in Mathematica because the evaluator will keep evaluating until it stops changing - the CL QUOTE would be a noop in the Mathematica evaluator. ...
    (comp.lang.lisp)
  • Re: Lisps QUOTE and Mathematicas "Hold"
    ... >> You can see Hold in Mathematica but not QUOTE in Lisp but isn't that more ... At least in Lisp case, the QUOTE form was evaluated and it ... However, despite the difference in method of evaluation, the results are ...
    (comp.lang.lisp)