46

.Net 是否有任何 Common Lisp 实现?

4

9 回答 9

28

我最近没有看过它,但至少在过去,在 CLR 上完全实现 common lisp 存在一些问题,如果这发生了变化,我会有点惊讶。问题出现在处理浮点数之类的问题上,其中 .net/clr 有办法做到这一点,即 a) 略微不正确 b) 不同意通用 lisp 的 ANSI 标准,但 c) 不允许任何解决此问题的方法。还有其他类似的问题。这些东西很繁琐,也许不太重要,但意味着您不太可能在 CLR 上看到 ANSI CL。

还有更大的问题,例如 common lisp 有一个更强大的对象系统,所以你不能在运行时将它 1:1 映射到对象(没有 MI,一个)。这没关系,但给您留下了一种内部/外部的方法,这是常见的运行时试图避免的......

无论您是否会看到一个常见的 lisp-ish 变体在其上运行,都是另一回事,但我目前不知道(不是我仔细研究过)

于 2008-09-22T16:26:30.980 回答
17

如果可以反过来,您可以通过Edi Weitz 的 RDNZL从您最喜欢的 Lisp 访问 .Net 。

于 2008-09-21T07:09:11.793 回答
16

不,但您可能需要考虑在DLR上运行IronScheme

从网站:

IronScheme 的目标是成为基于 Microsoft DLR 的符合 R6RS 的 Scheme 实现。

IronScheme 将完全重写 IronLisp,并结合开发 IronLisp 的经验教训。

于 2008-09-21T07:22:14.120 回答
13

从 2008 年到 2010 年重新考虑这个问题,您现在可能想要考虑 CLR 上的 Clojure。它不是 Common Lisp,但如果你来自那个方向,它会很容易学习。与 CLR 的互操作非常简单,它每天都会吸引更多的用户,并解决其他几个重要的话题,比如并发性。可能值得在其中投入一些时间。更多 CLR 特定 Clojure 信息在这里

于 2010-04-05T17:32:56.010 回答
7

L 夏普 .NET

于 2009-10-03T00:53:17.267 回答
6

.NET 的完整通用 lisp http://code.google.com/p/uabcl/

于 2010-06-30T13:50:00.170 回答
2

截至 2019 年,现在有 Bike:https ://github.com/Lovesan/bike它使用 lisp 兼容层实现了到 .Net Core 平台的跨平台 Common Lisp 接口。

  • 首先是RDNZL重生
  • 这一次,在 .Net Core 上,无需一行 C++ 代码,完全跨平台

(在https://github.com/CodyReichert/awesome-cl#net-core上看到了)

于 2019-10-17T20:08:45.210 回答
1

#Script Lisp

我正在开发Lisp,它是Nukata Lisp#Script的增强版本,具有许多新功能,可重用现有的脚本功能,以提供与其余部分 (请参阅语言块和表达式)和 .NET 的无缝集成,包括.NET 类型的脚本,支持适用于所有 .NET 数字类型,并可以访问其包含1000多种脚本方法的综合库- 专为从动态语言访问 .NET 功能而设计。#Script#Script

为了提高与现有 Common Lisp 源代码的兼容性,它还实现了大部分Simplified Common Lisp Reference 以及在 Lisp 中实现 C# LINQ 101 示例所需的所有缺失函数:

#Script Lisp LINQ 示例

为了提高可读性和熟悉度,它还采用了许多Clo​​jure语法来定义 数据列表和映射文字、 匿名函数Java Interop中用于 .NET Interop 的 语法、用于索引集合和访问索引访问器的关键字语法以及 Clojure 流行的较短别名fn, def, defn- 提高与 Clojure 的源代码兼容性。

YouTube 演示

因为它是一流的#Script语言,它受益于其广泛的支持用例生态系统,您可以在下面的 YouTube 视频中预览其中的一些:

安装

#ScriptLisp 可以通过Web跨平台dotnet工具立即安装,该工具可以通过以下方式安装:

$ dotnet tool install -g web

你可以在哪里启动一个即时的 Lisp REPL:

$ web lisp

并且能够运行和观看 Lisp 脚本,您可以在其中实时查看更改。

Windows应用程序 dotnet 工具中提供了相同的功能:

$ dotnet tool install -g app

此外,您还可以使用#ScriptLisp 开发Gist 桌面应用程序Sharp 应用程序(.NET Core Windows 桌面应用程序)。

于 2019-10-16T22:50:32.087 回答
0

你可以试试这个(免责声明,我自己没有测试过)。也读这个。这就是链接的来源。

于 2008-09-24T15:15:50.133 回答