一樣在 linux 環境下學習。
apt-get install gcl
就可以開始練習了。
我的參考書 lisp 基礎 李漢銘 儒林:
http://books.google.com.tw/books/about/LISP%E5%9F%BA%E7%A4%8E.html?id=qvB6MwEACAAJ&redir_esc=y
為什麼沒照片? 嗯 ...
薄薄的 218 頁, 我最喜歡這種學習書籍了。
好像是 http://www.biolisp.org/llisp/index.html 中文版本。
descent@w-linux:~$ gcl GCL (GNU Common Lisp) 2.6.7 CLtL1 Feb 15 2010 17:57:54 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE BFD UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files set to /tmp/ >(car '(1 2 3 4)) 1 >(cdr '(1 2 3 4)) (2 3 4) >
令人困惑的 car, cdr
page 24 ex1 的作業就難倒我:
把這個 list 反轉, 到這裡只有 car, adr, cons, conc 這四個 function 可用。
((Bill 1234567) (simon 555) (jane 201))
變這樣:
((jane 201) (simon 555) (Bill 1234567))
> (cons (caddr '((Bill 1234567) (simon 555) (jane 201))) (cons (cadr '((Bill 1234567) (simon 555) (jane 201))) (cons (car '((Bill 1234567) (simon 555) (jane 201)) ) '()) ))
很恐怖吧!
http://blog.sina.com.cn/s/blog_5d90e82f0101jo6r.html
提到的 dynamic scoping 問題, 在 gcl 運作的方式是我們預期的那樣, 在 emacs 則不是。
在 emcas 可以這樣用:
啟動 emcas, 進入 lisp-interaction-mode
M-x lisp-interaction-mode
按下
ESC x lisp-interaction-mode
(+ 3 4)
7
(cdr '(1 2 3 4))
(2 3 4)
(car '(1 2 3 4))
1
在每行程式碼最後按下 ctrl+j 就會得到結果。
mit-scheme
install mit-scheme in linux/debian
apt-get install mit-scheme
run mit-scheme
descent@debian-vm:~$ mit-scheme
ctrl+c q exit mit-scheme
mit-scheme 教學:
http://faculty.csie.ntust.edu.tw/~ywu/cs4001301/MITScheme_tutorial.pdf
http://faculty.csie.ntust.edu.tw/~ywu/cs4001301/Scheme_tutorial.pdf
ref:
你是如何成為Lisp程序員的?
Lisp 入門 / 序章 如何開始
use gcl compile lisp porgram
這題目沒有 defun 可以用啊?XD
回覆刪除