用 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 SkyEcho 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 汉字都码进代码了....可以从外部文件读嘛,这样更容易做国际化 |