Hacker News new | ask | show | jobs
by ciro_langone 3226 days 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.
1 comments

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.