Showing posts with label scheme. Show all posts
Showing posts with label scheme. Show all posts

Friday, February 18, 2011

Groking HOAS in F#

It is 3 AM in Budapest and, quite typically, I cannot sleep since my mind is actively engaged in remembering all the functional programming tricks I have read about. So, tonight it is HOAS, or Higher Order Abstract Syntax. If you have ever implemented a De Bruijn-indexed AST for Scheme and spent a few days catching indexing bugs, you surely would appreciate the beauty of this:

Saturday, March 14, 2009

the ultimate language

Periodically, a manager will mandate that I perform my work using some particular language or technique (buzzword). I usually comply by writing (adapting) a translator from SCM to that language -- Aubrey Jaffer

Tuesday, February 24, 2009

Which Scheme?

PLT/mzscheme has been my number one choice. Reasonably fast (like naively written Haskell), with a very friendly community, runs on a VM, cross-platform, incredibly easy to install librares (PlaneT), fully dynamic FFI to C, does R6RS, has its own very nice extensions. I just could not figure out how to do ODBC - is it still supported? Now I am looking for alternatives for the compiled use case, for example for producing small binaries, or plugins to C systems. Bigloo and Chicken seem attractive. It is hard to choose, both seem very good. Please, no Common Lisp. UPDATE: I went for Chicken and I am really impressed! C integration is tight, binaries are very small (shared runtime), user libraries are as easy to install as Linux packages, it is easy to compile shared libraries. Bigloo must have its advantages too but for now I am sticking to Chicken.