Search code examples
.netschemeclrclojureclrironscheme

Discovering lisp-family language .NET implementations


So basically I'm not comparing Scheme with Clojure here, I want to compare realizations. There are:

Clojure-clr which can be installed even using Visual Studio extension but it's still going a bit buggy for me to use it this way. After you create and save such project you can't open it again...

And IronScheme, there is no VS addin for IronScheme yet as far as I know but maybe it got better .NET support I never used it and can't know about it.

So what of this two (or maybe even there is something else with lisp-like syntax) got better CLR support?


Solution

  • I have already answered about VS in a comment.

    In terms of .NET interoperability, IronScheme is probably better, due to being designed and written in .NET and liberal reuse of existing .NET types.

    In terms of being a .NET consumer, IronScheme provides excellent support for most .NET features (eg generics etc).

    In terms of being a .NET producer, IronScheme still lacks a bit. Example, cannot create generic methods or classes. Typed fields (on records) were only recently introduced and even that is a bit limiting (no support for mutual recursive field type definitions).

    Example what a mean by above:

    class Foo { Bar bar; } 
    class Bar { Foo foo; }
    

    To produce something like this, is not possible currently, but something that is doable (to some extent).

    With some developments towards the end of last year (2011), I have made it possible to write code in IronScheme that runs as fast (or even faster) than that in C#. The method IL output of the code matches F#'s closely (by pure coincidence). I dont even bother benching against IronPython/IronRuby anymore. :)

    Feel free to ask more, if needed.

    Also, there might be some informative discussions on the Codeplex discussion board for IronScheme. I normally respond very quickly.