Xin chào, tôi đang cố gắng tạo lồng nhau nếu trong lisp, nhưng chúng tôi vẫn gặp lỗi và chúng tôi không biết cách khắc phục!Nested if in lisp
** - EVAL: quá nhiều thông số cho toán tử đặc biệt NẾU:
(defun spread-stones-helper(game-state StoneInHand Player player-index pit-index)
;; Do we have more stones in our hand?
(if (> 0 StoneInHand)
;; Are we above the pit limit?
(if (> pit-index 5)
;; Switch the player and reset the pit-index to 0
(setq player-index (switchplayer player-index))
(setq pit-index '0)
)
;; Add 1 to the pit
(set-pit game-state player-index (GetCorrectPit player-index pit-index) (+ (get-pit game-state player-index (GetCorrectPit player-index pit-index)) 1))
;; Recursive call the function, with one less stone and 1 up in pit-index
(spread-stones-helper game-state (- StoneInHand 1) Player player-index (+ pit-index 1))
)
;; There are no more stones in hand, run capture stones
;; (captureStones game-state StoneInHand Player player-index pit-index)
)
Tôi nghĩ bạn có thể đang bối rối với phong cách thụt lề/thụt lề lẻ mà bạn đã tạo. – Ken