1. 13

  2. 4

    I shared this, because it’s one the one hand a remarkably simple Scheme implementation, written by famous Lisper Peter Norvig (also known for writing “Paradigms of Artificial Intelligence Programming”), but also because it’s kind of a fossil in how older and clean Java looked like.

    1. 2

      It does look really clean indeed, but it strikes me more as a toy implementation for educational purposes than an implementation for “serious” use. For that, I’d look to SISC (which is sadly unmaintained) or Kawa

      1. 1

        Interesting! In your opinion, what makes it a toy and what would need to change to make it not a toy?

        1. 4

          Well, for one, it doesn’t have real continuations, only escape continuations. That is one benchmark that any serious Scheme should pass. It doesn’t have macros (but there’s apparently an add-on contibution for it). And the author himself says performance was not a major concern (I also suppose memory overhead of procedures implemented as a class would be relative large). Then, numerics: it uses doubles for everything, which is problematic in its own way (see JavaScript), and a serious Scheme should implement at least some part of the full numeric tower. But more importantly, it doesn’t seem to have a module system, nor any libraries to speak of (though there is Java class access through an FFI of sorts).

        2. 1

          That goes without saying, I’m not sure what the smallest “serious” Scheme implementation is, but I would suspect it would have to be at least a order of magnitude bigger than this.

          And I’m not sure about SISC, but Kawa is “one level below” JScheme, since JScheme is implemented and interpreted in Java, while Kawa compiles to JVM Bytecode.

      2. 3

        Also see Kawa Scheme.