Re: The Mathematica equivalent of Cons (as in Lisp)?
- To: mathgroup at smc.vnet.net
- Subject: [mg73903] Re: [mg73849] The Mathematica equivalent of Cons (as in Lisp)?
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sat, 3 Mar 2007 00:52:51 -0500 (EST)
On 2 Mar 2007, at 12:25, wooks wrote: > For the benefit of someone with a Scheme background. > > Would it be Prepend. Are there any pitfalls to be wary of? > > Mathematica is quite different from Lisp and in particular Mathematica's Lists are quite different from Lisp lists, which are rather like Mathematica's "linked lists" of the form {a,{b,....}}. Tghus there is really nothing in Mathematica that corresponds to cons. You can try to immitate Lisp programming style in Mathematica but your programs will be very inefficient. You cna of course write your own implementation of Lisp in Mathematica. One obvious way is to use cons as the Head of a lispList and define car, cdr etc, as follows: lispList[a_, b___] := cons[a, lispList[b]] car[cons[a_, b_]] := a cdr[cons[a_, b_]] := b etc. However, it is much simpler and far more efficient to simply learn Mathematica's one programming language. Andrzej Kozlowski