gpt4 book ai didi

c - 在自己编写扩展之前要在 C 中实现多少 lisp?

转载 作者:太空狗 更新时间:2023-10-29 15:54:30 25 4
gpt4 key购买 nike

我正在用 C 实现一个 lisp 解释器,我已经实现了一些原语,如 cons 、 car 、 cdr 、 eq 、基本算术东西。

就在我开始实现 define 和 lambda 之前,我突然想到我需要实现一个环境。我不确定我是否可以在 lisp 本身中实现它。

我的意图是实现最少量的 lisp,这样我就可以编写语言本身的扩展。我不确定有多少是最小的,实现 FFI 是否符合最小要求?

最佳答案

您问题的答案取决于您赋予“最小”一词的含义。

鉴于你的问题,并假设你不想让一个实现与当今 Common Lisp 和 Schema 的优秀实现竞争,我的假设是你想要的“最小”: Turing complete ,它能够表达任何可以用通用编程语言表达的计算。

有了这个假设,您还需要实现另外三件事:

  1. 条件形式(cond)
  2. lambda 表达式(lambda)
  3. 一种定义递归 lambda 表达式的方法(labelsdefun)

然后您的解释器应该能够评估表格。这应该足以让语言等同于初始 LISP ,允许用语言表达任何可计算的函数。

关于c - 在自己编写扩展之前要在 C 中实现多少 lisp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31702864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com