2012-01-26 5 views
6

Так что в принципе я не сравниваю Схему с Clojure здесь, я хочу сравнить реализации. Есть:Обнаружение языка Lisp-семейства .NET.

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

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

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

+0

Просто придерживайтесь VS2008SP1. Для него есть плагин редактора. IMO VS2010 слишком глючен, чтобы даже приложить достойную поддержку. Надеемся, что ошибки showstopper будут исправлены в VS11 +. Затем я буду исследовать перенос плагина редактора. – leppie

+0

Итак, я просто следую за новой версией, потому что VS 2008 не имеет многих функций 2010 года, и я не могу быть уверен, когда они мне понадобятся. – Cynede

+0

Вы называете их функциями, я называю их ошибками :) – leppie

ответ

4

Я уже ответил о 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. Я обычно отвечаю очень быстро.

+0

Думал, что ваш репозиторий находится на GitHub. Так будет проще использовать IronScheme с другими языками, предоставляющими действительные типы .NET. Я думал, что это возможно и в ClojureCLR. Трудно сравнить этот способ для меня ... Эта инициализация в Clojure https://gist.github.com/1584097 пугает меня. Мне очень нравится (clr-reference System.Windows.Forms) больше. Но я не буду переключаться на VS2008, я попробую запустить некоторые встроенные в C# примеры с ним. – Cynede

+0

@ ヒ ザ キ: Я зеркало SVN от Codeplex на Github. – leppie

+0

@leppie На самом деле, ClojureCLR написан на C# /. NET тоже. Это порт версии JVM для CLR. –

1

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

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

Смежные вопросы