用 c 语言实现的 lisp 解释器,基本实现了 lisp 的特性。功能比较简单,代码主要分成三个部分:
用它写出来的代码如下, 实现了 Fibonacci 函数:
;;第一种递归求 fibonacci 的方法
(define fib-1
(lambda (n)
(cond ((= n 0) 0)
((= n 1) 1)
(else (+ (fib-1 (- n 1))
(fib-1 (- n 2)))))))
;;第二种, 尾递归
(define fib-iter
(lambda (a b count)
(if (= count 0)
b
(fib-iter (+ a b) a (- count 1)))))
(define fib-2
(lambda (n)
(fib-iter 1 0 n)))
(fib-2 100)
项目代码在 https://github.com/luohaha/Dior 。欢迎交流,求 star 。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.