У меня есть следующие Common Lisp функции:Есть ли лучший способ написать эту функцию?
(defun get-positions (marker)
(let ((result nil))
(dotimes (i (length board))
(if (eq (nth i board) marker)
(push i result)))
(nreverse result)))
Вот что board
есть и вот выход функции:
CL-USER> board
(X X O NIL NIL NIL NIL NIL NIL)
CL-USER> (get-positions 'x)
(0 1)
Похоже, что функция, которую я написал может быть немного многословным. Есть ли более сжатый способ написать его?