- 授权协议: 未知
- 开发语言: Lisp
- 操作系统: Linux
- 软件首页: https://github.com/shinh/makelisp
软件介绍
makelisp 是 GNU make 的 Lisp 实现。
makelisp.mk 是 GNU make 中的 Lisp 解析器。
GNU make 包含两个内置函数:$(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='(cons 1 (cons 2 (cons 3 ())))' (1 2 3) $ make -f makelisp.mk (defun fact (n) (if (eq n 0) 1 (* n (fact (- n 1))))) (fact 10) (defun fib (n) (if (eq n 1) 1 (if (eq n 0) 1 (+ (fib (- n 1)) (fib (- n 2)))))) (fib 12) (defun gen (n) ((lambda (x y) y) (define G n) (lambda (m) (define G (+ G m)) G))) (define x (gen 100)) (x 10) (x 90) (x 300) ^D fact 3628800 fib 233 gen x 110 200 500
内置函数
car
cdr
cons
eq
atom
+, -, *, /, mod
neg?
print
特殊表单
quote
if
lambda
defun
define
复杂示例
FizzBuzz:
$ cat fizzbuzz.l | make -f makelisp.mk (lambda (n) (if (eq n 101) nil (if (print (if (eq (mod n 15) 0) FizzBuzz (if (eq (mod n 5) 0) Buzz (if (eq (mod n 3) 0) Fizz n)))) (fizzbuzz (+ n 1)) nil))) PRINT: 1 PRINT: 2 PRINT: Fizz ... PRINT: 98 PRINT: Fizz PRINT: Buzz nil
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)
网络是怎样连接的
[日]户根勤 / 周自恒 / 人民邮电出版社 / 2017-1-1 / CNY 49.00
本书以探索之旅的形式,从在浏览器中输入网址开始,一路追踪了到显示出网页内容为止的整个过程,以图配文,讲解了网络的全貌,并重点介绍了实际的网络设备和软件是如何工作的。目的是帮助读者理解网络的本质意义,理解实际的设备和软件,进而熟练运用网络技术。同时,专设了“网络术语其实很简单”专栏,以对话的形式介绍了一些网络术语的词源,颇为生动有趣。 本书图文并茂,通俗易懂,非常适合计算机、网络爱好者及相关从......一起来看看 《网络是怎样连接的》 这本书的介绍吧!
