Common LISP - Should be a lambda expression
Kaere eksperter, jeg forstaar hvad "Should be a lambda expression" betyder. Her er output, koden er nedenunder.==== error msg ====
[16]> (load "missionaries-and-cannibals.lisp")
;; Loading file U:\ai\ass\missionaries-and-cannibals.lisp ...
*** - SYSTEM::%EXPAND-FORM:
((EQUAL '(BOAT-SIDE STATE) (PEOPLE-COMING-FROM-SIDE))
(- NUMBER-OF-PEOPLE-ON-SIDE NUMBER-TO-BE-MOVED))
should be a lambda expression
The following restarts are available:
SKIP :R1 skip (DEFUN UPDATE-PEOPLE-AMOUNT # ...)
STOP :R2 stop loading file U:\ai\ass\missionaries-and-cannibals.l
isp
ABORT :R3 ABORT
Break 1 [17]> abort
[18]>
==== program kode ====
(defun update-people-amount (number-of-people-on-side number-to-be-moved people-coming-from-side)
cond(
;; if boat and people are from same side then subtract number-to-be-moved from number-of-people-on-side
(
(equal (boat-side state) (people-coming-from-side)) ; if people and boat are on same side
(- number-of-people-on-side number-to-be-moved) ; return the updated number of people
)
;; if boat and people are from opposite sides then add number-to-be-moved fromto number-of-people-on-side
(t (+ (number-of-people-on-side) (number-to-be-moved))) ; return the updated number of people
)
)
Nogen forslag?
