Re:Ask HN: Lispers: Which dialect of Lisp do you use and why?
by ciro_langone on Thursday August 17, 2017 @12:25PM
(#15038174)
What is is about scheme that allows the 18k LOC to be condensed to 7k LOC? I assume there was some culling of excess code, but that's a dramatic improvement.
[ Parent
| on HN ]
Re:Ask HN: Lispers: Which dialect of Lisp do you use and why?
by shakna on Thursday August 17, 2017 @12:50PM
(#15038429)
The biggest improvement was at the parsing/eval side of things.
Because Scheme has something utterly amazing, that I've seen in very few modern languages.
A safe eval function.
(let foo foo
(eval '(foo arg) (null-environment)))
Only what you bind to the environment exists, and in the case of null-environment, that's all that gets bound. (There are other environments you can use, or you can prebuild your own easily).Scheme also provides string->symbol and symbol->string type conversions, which allow you to do things that are normally next to impossible, though mainly only useful in macros.
That can let you generate let-bindings on the fly, which if you contain them with a safe eval, gives you some really amazing possibilities.
Like parsing and binding URL queries.