Hacker News new | ask | show | jobs
by Zambyte 703 days ago
I feel like one of the major benefits of using Scheme is how easy it is to interoperate with just about any environment. Want to embed Scheme in your C application? Take your pick from GNU Guile, Chibi, Gambit, or Chicken. How about the JVM? Kawa is solid, option. .NET? IronScheme has got you covered. Javascript? There is LIPS or BiwaScheme.
2 comments

I agree. I recently started using an R4RS Scheme called "STk", the precursor to STklos, which I modded into a build system (replacing Make and Sh, for the most part) and a graphics DSL front-end to C. The author wrote a demo app web browser with Scheme as a scripting language, as was the original plan with Mozilla, and Tk as the GUI. Writing extensions in C is a breeze too, as it supports dynamic loading:

https://github.com/egallesio/STk

I like Common Lisp too, although not as much as Scheme day-to-day--it is nice now to have both. I was thinking about adding a TinyCLOS using Common Lisp. Pseudo Scheme transpiles source to CL, so I might be able to do it with CLOS underlying it instead of how TinyCLOS does it.

Jonathan Rees, the original author, has a Pseudo Scheme repo up on Github, with a branch that uses ASDF (which I am testing with SBCL).

https://github.com/jar398/pseudoscheme

Thanks for your comment, and thanks to the maintainers of both of the linked Scheme implementations.

> Pseudoscheme consists primarily of a Scheme to Common Lisp translator that is written in Scheme. To obtain a version of the translator that runs in Common Lisp, it is applied to itself.

Yes!

In the CL world: to embed CL in your C app: ECL; interface with the JVM: ABCL and LispWorks; for .NET: Bike (https://github.com/Lovesan/bike/). JS: JSCL and Valtan (might need more love).
CLASP in C and C++ via LLVM.

LispWorks and Allegro CL as shared libraries in various environments. LispWorks in iOS and Android Apps.

SBCL, I think, now possibly works also as a shared library.