Re: Very poor Lisp performance
- From: Brian Downing <see-signature@xxxxxxxxx>
- Date: Sun, 21 Aug 2005 02:32:01 GMT
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>
.
- Follow-Ups:
- Re: Lisp's QUOTE and Mathematica's "Hold"
- From: Jon Harrop
- Re: Lisp's QUOTE and Mathematica's "Hold"
- References:
- Very poor Lisp performance
- From: Jon Harrop
- Re: Very poor Lisp performance
- From: Jon Harrop
- Re: Very poor Lisp performance
- From: Ulrich Hobelmann
- Re: Very poor Lisp performance
- From: Jon Harrop
- Very poor Lisp performance
- Prev by Date: Re: Lisp syntax vs. Mathematica syntax
- Next by Date: Re: Lisp syntax vs. Mathematica syntax
- Previous by thread: Re: Very poor Lisp performance
- Next by thread: Re: Lisp's QUOTE and Mathematica's "Hold"
- Index(es):
Relevant Pages
|