.Net 有 Common Lisp 实现吗?

发布于 2024-07-05 08:28:39 字数 30 浏览 5 评论 0原文

.Net 有 Common Lisp 实现吗?

Are there any Common Lisp implementations for .Net?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

三月梨花 2024-07-12 08:28:40

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

Reconsidering this question from 2008 in 2010, you now might want to consider Clojure on the CLR. It's not Common Lisp, but it will be fairly easy to learn if you are coming from that direction. Interoperating with the CLR is dead-easy, it takes on more users every day and addresses several other important topics like concurrency. Might be worth investing some time in it. More CLR specific Clojure info here.

携君以终年 2024-07-12 08:28:40

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

If it's OK to go the other way around, you can access .Net from your favourite Lisp through Edi Weitz' RDNZL.

烟燃烟灭 2024-07-12 08:28:40

否,但您可能需要考虑在 DLR

来自网站:

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

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

No, but you might want to consider IronScheme running on the DLR.

From the website:

IronScheme will aim to be a R6RS conforming Scheme implementation based on the Microsoft DLR.

IronScheme will be a complete rewrite of IronLisp incorporating lessons learnt while developing IronLisp.

吐个泡泡 2024-07-12 08:28:40

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

还有更大的问题,例如 Common Lisp 有更强大的对象系统,因此您无法在运行时将其 1:1 映射到对象(例如没有 MI)。 这是可以的,但是给你留下了一种内部/外部的方法,这是常见的运行时试图避免的......

无论你是否会看到一个常见的 lisp-ish 变体在其上运行是一个不同的故事,但我目前还不知道(不是我努力寻找的)

I haven't looked at it recently, but at least in the past there were some problems with fully implementing common lisp on the CLR, and I'd be a little surprised if this has changed. The issues come up with things like the handling of floats where .net/clr has a way to do it that is a) subtly incorrect b) disagrees with the ANSI standard for common lisp but c) doesn't allow any way around this. There are other similar problems. This stuff is fiddly and perhaps not too important, but means you are unlikely to see an ANSI CL on the CLR.

There are bigger issues, for example common lisp has a more powerful object system, so you can't map it 1:1 to object in the runtime (no MI, for one). This is ok, but leaves you with an inside/outside sort of approach which is what a common runtime tries to avoid...

Whether or not you'll see a common lisp-ish variant running on it is a different story, but I don't know of any at the moment (not that I've looked hard)

魔法少女 2024-07-12 08:28:40

.NET 的完整 Common Lisp http://code.google.com/p/uabcl/

Full common lisp for .NET http://code.google.com/p/uabcl/

空气里的味道 2024-07-12 08:28:40

#Script Lisp

我正在开发 #Script Lisp,它是 < a href="https://github.com/nukata/lisp-in-cs" rel="nofollow noreferrer">Nukata Lisp 具有许多新功能
重用 #Script 现有脚本功能来提供与 #Script 其余部分的无缝集成
(请参阅语言阻止表达式
和 .NET,包括.NET 类型脚本,支持所有 .NET 数字类型并访问其全面的
超过 1000 多个库脚本方法 - 专为访问 .NET 功能而设计来自动态语言。

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

#Script Lisp LINQ示例

,为了提高可读性和熟悉度,它还采用了一些 Clojure 语法来定义
数据列表和地图文字,
匿名函数
.NET Interop 的 Java Interop 中的语法,
用于索引集合的关键字语法和访问索引访问器
以及 Clojure 流行的较短别名 fndefdefn - 提高了与 Clojure 的源代码兼容性。

YouTube 演示

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

安装

#Script Lisp 可以从 x 跨平台 dotnet 工具,可以安装:

$ dotnet tool install -g x

您可以通过以下方式启动即时 Lisp REPL:

$ x lisp

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

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

$ dotnet tool install -g app

此外,它还可以让您使用 #Script Lisp 开发 Gist 桌面应用 和 < a href="https://sharpscript.net/docs/sharp-apps" rel="nofollow noreferrer">Sharp 应用(.NET Core Windows 桌面应用)。

#Script Lisp

I'm developing #Script Lisp, an enhanced version of Nukata Lisp with a number of new features
that reuses #Script existing scripting capabilities to provide seamless integration with both the rest of #Script
(see Language Blocks an Expressions)
and .NET including Scripting of .NET Types, support for all .NET numeric types and access to its comprehensive
library of over 1000+ Script Methods - optimally designed for accessing .NET functionality from a dynamic language.

To improve compatibility with existing Common Lisp source code it also implements most of the Simplified Common Lisp Reference
as well as all missing functions required to implement C# LINQ 101 Examples in Lisp:

#Script Lisp LINQ Exmples

and to improve readability and familiarity it also adopts a number of Clojure syntax for defining a
data list and map literals,
anonymous functions,
syntax in Java Interop for .NET Interop,
keyword syntax for indexing collections and accessing index accessors
and Clojure's popular shorter aliases for fn, def, defn - improving source-code compatibility with Clojure.

YouTube Demos

Because it's a first-class #Script language, it benefits from its wide ecosystem of supported use-cases, a few of which you can preview in the YouTube videos below:

Install

#Script Lisp can be installed instantly from the x cross-platform dotnet tool that can be installed with:

$ dotnet tool install -g x

Where you'll be able to bring up an instant Lisp REPL with:

$ x lisp

and be able to run and watch Lisp scripts where you can view changes in real-time.

The same functionality is available in the Windows app dotnet tool:

$ dotnet tool install -g app

Which in addition will let you use #Script Lisp to develop Gist Desktop Apps and Sharp Apps (.NET Core Windows Desktop Apps).

幸福丶如此 2024-07-12 08:28:40

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

  • 首先,RDNZL 重生了
  • ,这次是在 .Net Core 上,没有一行 C++ 代码,并且完全跨平台

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

As of 2019 there is now Bike: https://github.com/Lovesan/bike It implements a cross-platform Common Lisp interface to the .Net Core platform, using lisp compatibility layers.

  • First of all, it is RDNZL reborn
  • This time, on .Net Core, without a line of C++ code, and fully cross-platform

(saw that on https://github.com/CodyReichert/awesome-cl#net-core)

记忆里有你的影子 2024-07-12 08:28:40

你可以尝试这个(免责声明,我自己还没有测试过)。 另请阅读此内容。 这就是链接的来源。

You could try this (Disclaimer, I haven't tested it myself). Also read this. that's where the link came from.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文