Arguably it should be neither of these, but instead a macro of some
kind. The solution that would make it "impossible" to get this wrong
would be something like:
(defmacro primitives [& specs]
`(list
~@(for [s specs]
(if (coll? s)
`(list '~(first s) ~(second s))
`(list '~s ~s)))))
user=> (primitives + - (disp print))
((+ #<core$_PLUS_ clojure.core$_PLUS_@145ad3d>) (- #<core$_
clojure.core$_@517bc3>) (disp #<core$print clojure.core
$print@166de66>))
On Jan 23, 9:09 pm, David <[email protected]> wrote:
> Line 86 of core.clj is:
>
> (list 'cadr caddr)
>
> and should be:
>
> (list 'caddr caddr)
>
> On Jan 23, 9:45 pm, dennis <[email protected]> wrote:
>
> > I have implemented a simple interpreter in clojure,it is just
> > transformed from the interpreter in SICP.Maybe someone interested in
> > it.
>
> > I have pushed it on github athttps://github.com/killme2008/cscheme
> > ,you can clone and run it by yourself.
>
>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en