Arc Forumnew | comments | leaders | submit | fractal's commentslogin
3 points by fractal 6168 days ago | link | parent | on: REPL variables

Sweet, thanks for these! If only Arc was a lisp-2, we could continue the CL naming convention. I'd also like to point out these are useful even if you have readline:

  arc> (do-some-lengthy-computation)
    #<some value>
  arc> ;; D'oh! I wish I had assigned that somewhere!
vs

  CL> (do-some-lengthy-computation)
    #<some value>
  CL> (defvar tp *)
Or

  arc> (some (interesting (expression ...)))
    some-value
  arc> `(some (other (stuff ;; D'oh! I want to embed the
                            ;; previous expression here
vs

  CL> (some (interesting (expression ...)))
    some-value
  CL> `(some (other (stuff ,+)))

-----

1 point by fractal 6168 days ago | link | parent | on: Technical Comments on Arc

mst - Good point, a with-nil macro will be useful in arc. Another feature of CL's let is that you can do

  (let (a (b) (c nil))
     ...)
to bind them all to nil. This is sometimes useful when writing macros. I'm not strongly opinionated here, but my preference is for a unified basic binding form.

vsingh - Good point, I'm looking forward to exploring Arc's first class macro support. It would help to have a good explanation of how they work. My concern is efficiency. In CL, all macros (including local macrolet ones) are guaranteed to have been expanded before the run-time of a compiled function (ie CLtL2 p685). Does Arc make any such guarantees?

icemaze - The debate re: lisp-1 vs lisp-2 has been going on for a long time. I didn't expect to change anyone's mind with this post, only to make my position on the issue clear. I think it is unquestionably the right modern lisp design decision. For an example, see my post re: REPL vars. In CL, + the variable can coexist with #'+ the function.

-Doug Hoyte

-----