Я хочу создать функцию, которая получает 2 аргумента и возвращает функцию, которая получает саму доску. Эта функция должна проверять ввод пользователя и вносить изменения на доске в соответствии с вводом. У меня нет проблем с пользовательским вводом и изменениями, которые я должен внести в доску. Моя проблема связана с функцией, которая возвращает функцию. Для этого я использую лямбду. Это код, над которым я работаю:
(defun faz-jogador-manual (n_aneis peca)
#'(lambda (tabuleiro)
(setf jogada (le-posicao))
(let ((num_anel (first jogada))
(posicao_anel (second jogada))
(tab (copia-tabuleiro tabuleiro)))
(tabuleiro-poe-peca tab peca num_anel posicao_anel))))
Эта функция должна возвращать функцию лямбда, но когда я вызываю функцию, используя:
(faz-jogador-manual 3 'X)
я получаю следующее:
#<Closure (:INTERNAL FAZ-JOGADOR-MANUAL 0) [X] @ #x2112f462>
Я не знаю, что я делаю неправильно, это звонок? это функция как таковая? Мне нужна помощь с этим.
let
, а неsetf
, еслиjogada
предназначена для использования в качестве локальной переменной. 01.12.2011