9章1節、集合。
うっはー!
代入が一般的ではないSchemeで、どうやって状態を扱うのかとても興味がある。
すべて式である
なんて言っちゃってるけど、やっぱ代入しちゃうのね。
新出の手続きは以下。
- member
- set!
- delete
これらの手続きを使って、持ち物を表した*inventory*という名前のリストを操作してみよう、という感じ。
名前の前後にアスタリスクがついているのは、グローバル変数であることを明示するためのLISPの慣習だそうだ。
gosh> (define *inventory* (list 'potion 'potion 'dagger 'cookie 'dagger)) *inventory*