用 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 。
1
a302800411 2016-05-03 09:43:48 +08:00 via Android
赞~
|
2
luohaha OP @a302800411 多谢!
|
3
petelin 2016-05-03 22:18:34 +08:00 via Android
Mark
|
4
yurivvvvv 2016-05-04 10:43:08 +08:00
咦, byr !
|
6
lsmgeb89 2016-05-07 23:12:54 +08:00 via Android
Lisp 解释器用 C 写只要这点代码!以后也试试看……
|
8
lcj2class 2016-05-08 09:01:17 +08:00 via iPhone
赞👍🏻
|
9
yangxin0 2016-05-10 10:00:09 +08:00 via iPhone
汉字都码进代码了....可以从外部文件读嘛,这样更容易做国际化
|