3 ms·
Scheme is a decent first cut at such a language. You would want to restrict or eliminate call/cc and mutation of pairs, and add contracts or some other kind of
by abecedarius 8y ago
Scheme is a decent first cut at such a language. You would want to restrict or eliminate call/cc and mutation of pairs, and add contracts or some other kind of gradual typing, but most of the other dynamicity of JS/Ruby/Python/etc. is missing, without cutting out metaprogramming.
In practice Chez Scheme is fast, though I guess not quite up to LuaJIT's level even though Lua seems less designed for efficiency than Scheme. (E.g. Lua tables ought to be more expensive than Scheme vectors, and people use metatables a lot where Schemers might use macros...)