4. M式
Lisp といえば S 式
(defun fact (x) (cond ((eq x 0) 1) (t (∗ x (fact (- x 1))))))
S 式はかっこが多くて読みにくい1
1
当部比
小宮山 敦史 (KITCC) M 式で生活してみる 3/8
5. M式
Lisp といえば S 式
(defun fact (x) (cond ((eq x 0) 1) (t (∗ x (fact (- x 1))))))
S 式はかっこが多くて読みにくい1
かっこが少ない書き方があれば……
1
当部比
小宮山 敦史 (KITCC) M 式で生活してみる 3/8
6. M式
Lisp といえば S 式
(defun fact (x) (cond ((eq x 0) 1) (t (∗ x (fact (- x 1))))))
S 式はかっこが多くて読みにくい1
かっこが少ない書き方があれば……
そこで人間が読みやすい (?)M 式!(S 式は機械が読みやすい)
fact[x] = [x=0 -> 1; T -> x∗fact[x-1]]
1
当部比
小宮山 敦史 (KITCC) M 式で生活してみる 3/8
7. M式
Lisp といえば S 式
(defun fact (x) (cond ((eq x 0) 1) (t (∗ x (fact (- x 1))))))
S 式はかっこが多くて読みにくい1
かっこが少ない書き方があれば……
そこで人間が読みやすい (?)M 式!(S 式は機械が読みやすい)
fact[x] = [x=0 -> 1; T -> x∗fact[x-1]]
Lisp1.5 のマニュアルには M 式で例が載っている
M-expressions S-sxpressions
car[x] (CAR X)
T (QUOTE T)
id[x]=x (DEFUN ID (X) X)
1
当部比
小宮山 敦史 (KITCC) M 式で生活してみる 3/8
8. M 式 READER
今の Lisp 処理系は大抵 S 式しか受け付けない……
小宮山 敦史 (KITCC) M 式で生活してみる 4/8
9. M 式 READER
今の Lisp 処理系は大抵 S 式しか受け付けない……
M 式で入力できる処理系作るか……?
小宮山 敦史 (KITCC) M 式で生活してみる 4/8
10. M 式 READER
今の Lisp 処理系は大抵 S 式しか受け付けない……
M 式で入力できる処理系作るか……?
と思ったが探したらあった
http:
//www.informatimago.com/develop/lisp/com/informatimago/
small-cl-pgms/m-expression/m-expression.lisp
CommonLisp で M 式の REPL
リードした M 式を S 式に変換して処理系に渡すプログラム
やっぱり誰か作ってるよねー
小宮山 敦史 (KITCC) M 式で生活してみる 4/8
11. M 式 READER
今の Lisp 処理系は大抵 S 式しか受け付けない……
M 式で入力できる処理系作るか……?
と思ったが探したらあった
http:
//www.informatimago.com/develop/lisp/com/informatimago/
small-cl-pgms/m-expression/m-expression.lisp
CommonLisp で M 式の REPL
リードした M 式を S 式に変換して処理系に渡すプログラム
やっぱり誰か作ってるよねー
コレさえあれば M 式だけで Lisp ができる……?
小宮山 敦史 (KITCC) M 式で生活してみる 4/8