makelisp GNU Make 的 Lisp 实现开源项目

我要开发同款
匿名用户2015年09月16日
242阅读

技术信息

开源地址
https://github.com/shinh/makelisp
授权协议
未知

作品详情

makelisp是GNUmake的Lisp实现。

makelisp.mk是GNUmake中的Lisp解析器。

GNUmake包含两个内置函数:$(shell)和$(guile)。

使用$ make -f makelisp.mk LISP_PROGRAM='(car (quote (a b c)))'a$ make -f makelisp.mk LISP_PROGRAM='(cdr (quote (a b c)))'(b c)$ make -f makelisp.mk LISP_PROGRAM='(cos 1 (cos 2 (cos 3 ())))'(1 2 3)$ make -f makelisp.mk(defu fact () (if (eq  0) 1 (*  (fact (-  1)))))(fact 10)(defu fib () (if (eq  1) 1 (if (eq  0) 1 (+ (fib (-  1)) (fib (-  2))))))(fib 12)(defu ge () ((lambda (x y) y) (defie G ) (lambda (m) (defie G (+ G m)) G)))(defie x (ge 100))(x 10)(x 90)(x 300)^Dfact3628800fib233gex110200500内置函数

car

cdr

cos

eq

atom

+,-,*,/,mod

eg?

prit

特殊表单

quote

if

lambda

defu

defie

复杂示例

FizzBuzz:

$ cat fizzbuzz.l | make -f makelisp.mk(lambda () (if (eq  101) il (if (prit (if (eq (mod  15) 0) FizzBuzz (if (eq (mod  5) 0) Buzz (if (eq (mod  3) 0) Fizz )))) (fizzbuzz (+  1)) il)))PRINT:   1PRINT:   2PRINT:   Fizz...PRINT:   98PRINT:   FizzPRINT:   Buzzil

Sort:

$ (cat sort.l && echo '(sort (quote (4 2 99 12 -4 -7)))') | make -f makelisp.mk...(1 2 3 4 5 6 7)(-7 -4 2 4 12 99)

功能介绍

makelisp 是 GNU make 的 Lisp 实现。 makelisp.mk 是 GNU make 中的 Lisp 解析器。 GNU make 包含两个内置函数:$(shell) 和 $...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论