|
|
|
|
|
by shakna
3226 days ago
|
|
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. |
|