Подтвердить что ты не робот

Есть ли довольно зрелые компиляторы Lisp/Scheme/Clojure для .Net CLR?

Я вижу несколько вариантов; ClojureCLR, LSharp, IronScheme, IronLisp и другие. Кто-нибудь из них активно поддерживается и/или где-нибудь ближе к "зрелым", или они в основном эксперименты или пылеуловители? Что будет считаться самой зрелой структурой для компиляции .Net dll и ссылки на другие .Net dll, если таковые имеются? Хорошо ли интегрируется с Visual Studio a la хотя бы в функции "Создать Lisp"?

4b9b3361

Ответ 1

IronLisp мертв и заменен IronScheme, который, в свою очередь, все еще является бета-версией.

L Sharp и ClojureCLR аналогичны, и они следуют той же идее современных Lisp для CLR (в отличие от IronScheme, которая пытается просто внедрить стандарт R6RS на новой платформе). ClojureCLR кажется более популярным, чем L Sharp, и сообщество Java Clojure быстро растет, поэтому вы можете использовать многие его библиотеки в своем .NET-приложении.

Я знаю, что для ClojureCLR существует плагин VS2010.

Я считаю, ClojureCLR сейчас наиболее интенсивно развивается, поэтому я бы поспорил на нем. С другой стороны, Clojure (и поэтому ClojureCLR) все еще изменяется, а будущие версии могут сильно отличаться от текущего состояния, что не очень хорошо для долгосрочного проекта производства. С этого момента более предпочтительным является IronScheme, который реализует старый проверенный R6RS. Я не могу сказать много L #, но я предполагаю, что это где-то между ClojureCLR и IronScheme.

Таким образом, фактическое решение зависит от ваших личных потребностей: стабильности, размера (потенциального) проекта и, конечно же, особенностей языка - не забудьте немного узнать о всех трех.

Ответ 2

Существует один (нестандартный) Lisp компилятор для .NET с акцентом на совместимость .NET:

http://www.meta-alternative.net/mbase.html

Это самый многофункциональный из всех перечисленных, но он продолжает меняться, и он все еще находится в стадии бета-тестирования.

Ответ 3

Не забывайте Bigloo, который является известным компилятором Scheme для C и Java VM, и недавно добавил экспериментальный .NET bytecode компилятор.

Ответ 4

Если вам просто нужно вызвать .NET из Lisp, и вам не нужно создавать DLL 1RDNZL может работать на вас.

1 Я не говорю, что вы не можете создавать DLL с помощью RDNZL и вашей реализации Lisp, у меня просто нет причин пытаться это сделать.