我想创建一个函数,它接收2个参数并返回一个接收自己的函数。该功能需要检查用户输入并根据输入对板进行更改。我对用户输入和我必须对董事会所做的更改没有任何问题。我的问题是返回一个函数的函数。要做到这一点,我使用了lambda。这是我工作的代码:Lisp - 返回函数的函数
(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>
我不知道我做错了什么,是电话吗?是本身的功能?我需要这个帮助。
当试图调用与funcall的功能,你说,我得到如下:错误:试图把未绑定变量'FAZ-JOGADOR-手册”的价值。 –
是的,当调用这样的函数时,它实际上工作:)但编译时仍然会出现警告,是否有任何方法可以解决这些问题,或者我不应该在意? –
如果您显示您正在接受的警告,那么也许! – mquander