最简化的LISP是什么?

18

可能重复:
如何构建一个最小的LISP,只需几个原语就能实现?是10个、7个还是5个?

我很好奇。有没有一种最小的LISP,可以在其基础上构建所有其他功能?不用考虑效率——这个问题只是出于优雅的考虑。

如果你在一个外星球上醒来,并被指示构建一个最小的LISP,以后可以在其基础上实现任何你想要的功能,你会包括什么?

编辑:澄清一下。我的意图并不是引发争论,而是考虑实现一个最小的LISP,并想了解我可以达到多少的极简程度,同时仍然允许我实现图灵完备等性质。如果这引起了争议,我相信我会从观察争议中学到我想学的东西。:)谢谢!


这个问题算是主观的吧?可能是重复的(我记得以前见过类似的问题,现在去找找看)。 - user395760
2
找到了:构建LISP机器需要多少个基元?十个、七个还是五个?(还有一个链接到另一个涉及此主题的问题)。 - user395760
你想要语言具备图灵完备性所需的最少操作数,还是能够定义所有常见Lisp语言特性? - sepp2k
3
可能希望阅读《Lisp In Small Pieces》。 - Wodin
2个回答

16

它还假定您拥有一台能够解释Lisp的Lisp机器。 - user2587965

6

Peter Norvig在Python中实现了一个LISP解释器,只用了90行代码,并且他后来的文章详细讨论了你所问的问题。我认为这篇文章值得一读。

http://norvig.com/lispy.html

我有一种感觉,如果函数调用可以接受任意数量的参数,那么他的“顺序”特殊形式可能可以被省略。

(defun last (lst)
  (if (cdr lst) 
      (last (cdr lst))
      (car lst)))

(defun begin (:rest y) (last y))

但是这会使函数应用变得更加复杂。

如果函数应用进行柯里化以创建具有一些 lambda 上下文的部分可应用程序,则您的想法将不会那么困难!思维很棒。 - Joshua Hedges

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接