3 ms·
scsh was definitely awesome, and it's not really practical in Common Lisp[0], due to Lisp's unfortunate choice to upcase all symbols. Made sense at the time, b
by zeveb 8y ago
scsh was definitely awesome, and it's not really practical in Common Lisp[0], due to Lisp's unfortunate choice to upcase all symbols. Made sense at the time, but in retrospect I think it was a mistake.
It's a real pity that Franz's modern mode[1] didn't become more popular.
[0]: it's possible, just ugly as hell because either one would have stuff like (|ls| |etc|) or one would have stuff like (|LENGTH| …).
[1]: https://franz.com/support/tech_corner/modern.mode.lhtml https://franz.com/support/tech_corner/modern.mode.lhtml
- EdwardCoffin 8y agoYou can use Readtable case :preserve to avoid the ugly-as-hell stuff [1]. Some libraries do this, for example KM [2] [1] http://clhs.lisp.se/Body/23_ab.htm http://clhs.lisp.se/Body/23_ab.htm [2] http://www.cs.utexas.edu/users/mfkb/km.html http://www.cs.utexas.edu/users/mfkb/km.html
- sedachv 8y agoIn fact you can have case-sensitive Common Lisp packages that are completely backwards compatible with case-insensitive CL code by settings readtable-case to :invert[1], and this works without any problems for interfacing with external case-sensitive environments.[2] Allegro's modern mode is what you would get if you assume case sensitivity as a default, but portable Common Lisp can handle case sensitivity perfectly fine without breaking backwards compatibility. [1] https://oneofus.la/have-emacs-will-hack/2011-09-20-common-lisp-is-case-sensitive.html https://oneofus.la/have-emacs-will-hack/2011-09-20-common-li... [2] https://common-lisp.net/project/parenscript/reference.html#section-symbolconv https://common-lisp.net/project/parenscript/reference.html#s...
- zeveb 8y agoI think using all-caps is ugly-as-hell: (DEFUN hello-world () (FORMAT T "Hello, world!~%"))
- fiddlerwoaroof 8y agoYeah, as others are saying, the CL spec foresees this with the way readtables work. But, honestly, the default behavior is pretty nice for normal programming tasks.