Contenu connexe
Similaire à Lisp study (20)
Lisp study
- 2. ( 始める前に注意点
( Lispそこまで詳しくない )
( 途中いきつまる可能性がある )
)
→ みんなで教え合って解決していきたい
- 5. Lispの考え方
Lispの文法 Lispの演習
Emacs,xyzzy
カスタマイズ
- 7. Lispの二大重要単語
リスト
(list)
リストとは括弧で
括ったもの アトム
例 (atom)
(emacs vim xyzzy)
("睦月" "如月" "弥生" "卯月")
- 8. リストの中にあるものがアトム
コレ
アトム
例
(atom)
(emacs vim xyzzy)
("睦月" "如月" "弥生" "卯月")
- 14. (関数名 引数1 引数2 …)
関数以外のものは
シングルクォーテーションを
例
つける。
(car ‘(a b))
関数 car
- 21. cdr関数の紹介
演習
(cdr ‘((Apple) Banana Orange))
を動かしてみてください
carの残りをリストで返す
(Banana Orange)
- 23. • 回答
(car (cdr (car '((Apple Banana) Orange))))
(cdr (car '((Apple Banana) Orange)))
- 24. setq関数の紹介
(car (cdr (car '((Apple Banana) Orange))))
…だんだんと長くなってきて読みにくい。
そうだ!変数宣言だ。
(setq x '((Apple Banana) Orange))
(car (cdr (car x)))
- 25. cons関数の紹介
演習
(cons ‘a ‘((Apple) Banana Orange))
を動かしてみてください
一つ目の引数アトムを先頭に
加えたリストを返す
(a (Apple) Banana Orange)
※注意点
(cons atom list) のように一つ目の引数をアトム
二つ目の引数をリストとする。
- 26. 演習問題
事前に
(setq s ‘Apple)
(setq l ‘(Banana (Orange Grape)))
として、変数宣言してください。
これまでに紹介した関数 「car」「cdr」「cons」
を用いて、上で宣言した二つの変数から、
(Apple Orange)
というリストを返すプログラムを作ってください。
- 27. • 回答
(setq s 'Apple)
(setq l '(Banana (Orenge Grape)))
(cons s (cdr (car (cdr l))))
- 31. cond関数の紹介
① (setq l ‘(Apple Banana Orenge))
② (setq l ‘(Banana Orenge))
③ (setq l ‘(Orenge Banana))
(cond
((eq (car l) ‘Apple) t) ①の時 t を返す!
((eq (car l) ‘Banana) (car l)) ②の時 Bananaを返す!
(t nil)) ③の時 nil を返す!
C言語のswitch-Case文でいうdefault文
- 43. エディタを開いた状態で
ctrl x を押してください
そのあとに F を押してください
パスは関係ないとして、上のようにパスと
ファイル名
.xyzzyもしくは、.emacsと書いてください。