残りのコードはすべて取得したので、次の関数のこのセクションについて説明していただければ幸いです。
(mapcar (lambda (x y)
(aref cells y x))
(list l x r l r l x r)
(list u u u y y d d d))
mapcar
つまり、少なくとも、この無関係なステートメントでここで何をしているのかがわかります。
(mapcar #'car '((1 a) (2 b) (3 c)))
そして、私lambda
はジェネリック(defun)であることを理解しています
上記のコード セクションの元となった関数は次のとおりです。
(defun neighbours (cells x y)
(let* ((mx (1- (array-dimension cells 1)))
(my (1- (array-dimension cells 0)))
(l (if (zerop x) mx (1- x)))
(r (if (= x mx) 0 (1+ x)))
(u (if (zerop y) my (1- y)))
(d (if (= y my) 0 (1+ y))))
(mapcar (lambda (x y)
(aref cells y x))
(list l x r l r l x r)
(list u u u y y d d d))))