Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"""But Common Lisp is so flexible that at every stage in your development, you can tweak and twist things left and right, but in the end you still get a convincing, clean, and efficient design. As far as I can tell, this is not possible in any other language (not even Scheme)."""

Of course, this kind of begs the question... why not in Scheme? Considering it's part of the Lisp family as well, what makes CL more flexible? (Taking into account that "Scheme the language", as based on R5RS, R6RS, etc, is limited; but a particular Scheme implementation might have everything & the kitchen sink.)



CL, and its object system particularly, specifies a lot of extensibility and sometimes hilarious dynamicity with exacting detail. E.g. you can subclass a class that doesn't even exist yet (!)

  CL-USER> (defclass foo (bar) ())
  #<STANDARD-CLASS FOO>
  CL-USER> (find-class 'bar)
  #<FORWARD-REFERENCED-CLASS BAR>
That's just one detail, but CL is chock full of such niceties, owing to the fact that a lot of rivaling factions of super-smart programmers wanted to get all their favorite features into it.


Reader macros are also very handy. This is a feature unique to CL.


That doesn't seem correct. I know of at least two Scheme implementations that have reader macros (Racket and Chicken); there might be more. However, whether their reader macros are as powerful as CL's [1], I don't know.

[1] as demonstrated e.g. here: http://letoverlambda.com/index.cl/guest/chap4.html


These are implementation-specific extensions, not part of Scheme. Scheme doesn't have e.g. a GUI either (neither does CL) notwithstanding that specific Scheme and CL implementations have GUIs. It's borderline trivial to add reader macros to any implementation of any dialect of Lisp, but only in CL can you count on having them available.


Are they coming to Clojure soon or did I misinterpret Rich Hickey's latest interview?


He was talking about "tagged literals", not general reader macros. See http://dev.clojure.org/display/design/Tagged+Literals




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: