Hatena::Groupcadr

bulbのLisp日記 RSSフィード

2008-02-03

[][]3.2 21:37 3.2 - bulbのLisp日記 を含むブックマーク はてなブックマーク - 3.2 - bulbのLisp日記

3.2 Special Forms

p.50-53

3.1, 3.2は、Norvig先生からLispの書き方を教わっている感じですね。

とてもためになります。


Lispで構造体。

(defstrruct name
    first
  (middle nil)
  last)

(setf b (make-name :first 'Paul :last 'Graham))

(name-first b)
#=> PAUL

(name-middle b)
#=> NIL

(name-last b)
#=> GRAHAM

(name-p b)
#=> T

(name-p 'Paul)
#=> NIL

(setf (name-middle b) 'Q)
#=> Q

b
#=> #S(NAME :FIRST PAUL :MIDDLE Q :LAST GRAHAM)