Обнаружение реализаций языка .NET для lisp-семейства - PullRequest
5 голосов
/ 26 января 2012

Так что я не сравниваю Scheme с Clojure здесь, я хочу сравнить реализации.Есть:

Clojure-clr, который можно установить даже с использованием расширения Visual Studio, но я все еще немного ошибаюсь, если использую его таким образом.После того, как вы создадите и сохраните такой проект, вы не сможете открыть его снова ...

И IronScheme, насколько я знаю, надстройки VS для IronScheme пока нет, но, возможно, она стала лучше. Поддержка .NET, которую я никогда не использовалэто и не может знать об этом.

Так что из этих двух (или, может быть, даже что-то еще с синтаксисом, похожим на lisp) получило лучшую поддержку CLR?

Ответы [ 2 ]

3 голосов
/ 03 февраля 2012

Я уже ответил о VS в комментарии.

С точки зрения взаимодействия .NET, IronScheme, вероятно, лучше, потому что он разработан и написан на .NET, а также многократное использование существующих типов .NET.

С точки зрения потребителя .NET IronScheme обеспечивает превосходную поддержку большинства функций .NET (например, универсальных и т. Д.).

С точки зрения производителя .NET, IronScheme все еще немного не хватает. Пример, не может создавать универсальные методы или классы. Типизированные поля (в записях) были введены только недавно, и даже это немного ограничивает (нет поддержки взаимных рекурсивных определений типов полей).

Пример, что означает выше:

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

Создать что-то подобное, в настоящее время невозможно, но что-то выполнимое (до некоторой степени).

С некоторыми событиями, произошедшими в конце прошлого года (2011), я сделал возможным написание кода в IronScheme, который работает так же быстро (или даже быстрее), как в C #. Вывод метода методом IL соответствует F # (по чистой случайности). Я даже больше не утруждаю себя против IronPython / IronRuby. :)

Не стесняйтесь спрашивать больше, если это необходимо.

Кроме того, могут быть некоторые информативные обсуждения на доске объявлений Codeplex для IronScheme. Я обычно отвечаю очень быстро.

1 голос
/ 02 февраля 2012

В последнее время было много активности на VsClojure , и скоро должно появиться обновление, которое устранит многие проблемы, с которыми вы столкнулись. Кроме того, что касается конкретной проблемы, с которой вы сталкиваетесь при открытии проекта, если вы запустите Visual Studio сначала , а затем откроете решение / проект, оно должно работать. Это просто не работает из оболочки. Вот некоторые блоги, которые могут помочь вам начать:

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

...