我得到了所有其余的代码,所以如果您能解释以下函数的这一部分,我将不胜感激:
(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))))