Discovering lisp-family language .NET implementations

689 views Asked by At

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?

2

There are 2 answers

6
leppie On BEST ANSWER

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.

0
Daniel Cotter On

There's been a lot of activity lately on VsClojure, and there should be an update soon that will fix a lot of the issues you're running into. Also, regarding the specific problem you're running into when opening a project, if you start Visual Studio first and then open the solution / project, it should work. It just doesn't work from the shell. Here are some blogs that might help you get started:

http://clojureclr.blogspot.com/
http://www.myclojureadventure.com/
http://clrviaclojure.blogspot.com/