我想創建一個函數,它接收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