4 ms·
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.
by ciro_langone 9y ago
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.
- shakna 9y agoThe 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.