by shigemk2

当面は技術的なことしか書かない

リスト遊び 4-7 等しいリスト

前回
リスト遊び 4-6 連想リスト その2 - by shigemk2

まあだいたいこんな感じ。

(defun equiv (x y)
  (cond 
   ((and (null x) (null y)) t) ;; リストの長さが等しいときt
   ((or (null x) (null y)) nil) ;; 等しくないならnil
   (t (and (eq (car x) (car y)) ;; 2つのリストのcarが等しいなら次へ
	  (equiv (cdr x) (cdr y))))))
equiv

(equiv '(1 t dog) '(1 t dog))
t
(equiv '(1 t dog) '(1 nil dog))
nil
(equiv '(dog pig) '(guineapig dog))
nil
(equiv '(dog pig) '(dog (pig)))
nil

リスト遊び―Emacsで学ぶLispの世界 (ASCII SOFTWARE SCIENCE Language)

リスト遊び―Emacsで学ぶLispの世界 (ASCII SOFTWARE SCIENCE Language)