Существуют ли какие-либо общие реализации Lisp для .Net?

Существуют ли какие-либо общие реализации Lisp для .Net?

Ответы

Ответ 1

Я не смотрел на него недавно, но по крайней мере в прошлом были некоторые проблемы с полным внедрением общего lisp в среде CLR, и я был бы немного удивлен, если бы это изменилось. Проблемы вызывают такие вещи, как обработка поплавков, где .net/clr имеет способ сделать это: a) тонко неверно; b) не согласуется с стандартом ANSI для общего lisp, но c) не позволяет каким-либо образом это. Есть и другие подобные проблемы. Этот материал неудобен и, возможно, не слишком важен, но означает, что вы вряд ли увидите ANSI CL на CLR.

Есть большие проблемы, например, общая lisp имеет более мощную объектную систему, поэтому вы не можете сопоставить ее 1:1 с объектом во время выполнения (без ИМ, для одного). Это нормально, но у вас есть подход внутри/снаружи, из-за которого обычное время выполнения пытается избежать...

Независимо от того, увидите ли вы обычный вариант lisp -ish, который работает на нем, это совсем другая история, но я не знаю ни одного в данный момент (не то, чтобы я выглядел тяжело)

Ответ 2

Если все в порядке, то вы можете получить доступ к .Net из своего любимого Lisp через Edi Weitz 'RDNZL.

Ответ 3

Нет, но вы можете рассмотреть IronScheme, работающий на DLR.

С веб-сайта:

IronScheme будет нацелен на реализацию схемы R6RS, основанной на Microsoft DLR.

IronScheme будет полным переписанием IronLisp, включающим уроки, полученные при разработке IronLisp.

Ответ 4

Пересматривая этот вопрос с 2008 года в 2010 году, вы теперь можете рассмотреть Clojure в CLR. Это не Common Lisp, но будет довольно легко узнать, поступаете ли вы с этого направления. Взаимодействие с CLR является мертвым, оно требует больше пользователей каждый день и затрагивает несколько других важных тем, таких как concurrency. Возможно, стоит потратить некоторое время на это. Более конкретный CLR Clojure info здесь.

Ответ 7

Вы можете попробовать this (Отказ от ответственности, я сам его не тестировал). Также читайте этот. что откуда появилась ссылка.

Ответ 8

#Script Lisp

Я разрабатываю #Script Lisp, улучшенную версию Nukata Lisp с рядом новых функций. который использует #Script существующие возможности сценариев для обеспечения плавной интеграции с остальными #Script (см. Язык блокирует выражения) и .NET, включая Сценарии типов .NET, поддержку всех числовых типов .NET и доступ к его всеобъемлющему библиотека из более 1000+ методовсценариев - оптимально разработана для доступа к функциональным возможностям .NET из динамического языка.

Для улучшения совместимости с существующим исходным кодом Common Lisp в нем также реализована большая часть Упрощенного общего справочника по Lisp а также все недостающие функции, необходимые для реализации С# LINQ 101 Примеры в Lispе:

#Script Lisp LINQ Exmples

и для улучшения читабельности и знакомства он также принимает ряд синтаксиса Clojure для определения список данных и литералы карты , анонимные функции, синтаксис в Java Interop для .NET Interop, Синтаксис ключевых слов для индексации коллекций и доступа к индексаторам доступа и Clojure популярные короткие псевдонимы для fn, def, defn - улучшение совместимости исходного кода с Clojure.

Демонстрации YouTube

Поскольку это первоклассный язык #Script, он обладает широкой экосистемой поддерживаемых сценариев использования, некоторые из которых вы можете просмотреть в видео YouTube ниже:

Установить

#Script Lisp можно мгновенно установить из веб- кроссплатформенного инструмента dotnet, который можно установить с помощью:

$ dotnet tool install -g web

Где вы сможете мгновенно вызвать Lisp REPL с:

$ web lisp

и иметь возможность запускать и просматривать сценарии Lisp, где вы можете просматривать изменения в режиме реального времени.

Та же функциональность доступна в приложении для Windows:

$ dotnet tool install -g app

Что, кроме того, позволит вам использовать #Script Lisp для разработки Gist Desktop Apps и Sharp Apps (.NET Core Windows Desktop Apps).

Ответ 9

Теперь есть Bike: https://github.com/Lovesan/bike Он реализует кроссплатформенный интерфейс Common Lisp для платформы .Net Core, используя уровни совместимости с lisp.

  • Прежде всего, это RDNZL возрождается
  • На этот раз в .Net Core, без строки кода C++ и полностью кроссплатформенной

(видел это на https://github.com/CodyReichert/awesome-cl#net-core)