я получаю всю остальную часть кода, так что я был бы очень признателен, если бы вы объяснить этот раздел следующей функции:Пожалуйста, объясните мне, что делается в этом общем коде Lisp ....?
(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))))
на самом деле я думаю, что это будет (Ареф клетки мкл) (Ареф клетки УБ) и так далее ... лямбда связывает значения х и у, но Ареф звонит у и х, так наоборот. – momo
Хороший улов! Я обновил ответ. –