has-item?

さて、9章6節の後半。
make-player(id:yagiey:20090314:1237041715)で作った値で大域変数*player*を束縛しといて、*player*をいろいろ変更していく。
まず、指定したプレイヤーが指定したアイテムを持っているかどうか調べるhas-item?

(define has-item?
  (lambda (player item)
    (member item (cdr (assoc 'inventory player)))))

んじゃ、使ってみる。

gosh>
;; まずはプレイヤーを作っとく
(define *player*
        (make-player 'hp 320
                     'mp 66
                     'position #f
                     'inventory (list potion potion dagger cookie dagger)))
*player*
gosh>
;; cookieは持っている
(has-item? *player 'cookie)
(cookie dagger)
gosh> 
;; elixirは持っていない
(has-item? *player 'elixir)
#f

はいよ、特に問題無し。