Προς το περιεχόμενο

Lisp


sokap23

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σας θα ήθελα αν ξέρei κάποιος να με βοηθήσει.Πρέπει να υλοποιήσω το 8 puzzle problem(πρόβλημα του τετράγωνου παζλ 8 ψηφίδων).Το κομμάτι του κώδικα που μου εμφανίζει λάθος είναι το εξής:

 

>
(defun next-boards (board)
"Given the current board, return a list of the next boards."
(let ((states nil)
(x (position *space* board)))
(flet ((maybe-swap (move-fn)
(when-bind (p (funcall move-fn x))
(push (swap board x p) states))))
(declare (dynamic-extent maybe-swap))
(mapc #'maybe-swap fns))
states)))

(defun swap (list n1 n2)
"Non-destructive equivalent of rotatef."
(setq list (copy-list list))
(rotatef (nth n1 list) (nth n2 list))
list)

 

Όταν κάνω compile τον κώδικα μου βγάζει 2 warnings:

1) Warning in (subfunction maybe-swap next-boards): P assumed special

2) Warning in next-boards: Failed to find name maybe-swap in declaration (dynamic-extent maybe-swap).

 

Κάθε βοήθεια ευπρόσδεκτη!!!!

Δημοσ.
Καλησπέρα σας θα ήθελα αν ξέρei κάποιος να με βοηθήσει.Πρέπει να υλοποιήσω το 8 puzzle problem(πρόβλημα του τετράγωνου παζλ 8 ψηφίδων).Το κομμάτι του κώδικα που μου εμφανίζει λάθος είναι το εξής:

 

>
(defun next-boards (board)
"Given the current board, return a list of the next boards."
(let ((states nil)
(x (position *space* board)))
(flet ((maybe-swap (move-fn)
(when-bind (p (funcall move-fn x))
(push (swap board x p) states))))
(declare (dynamic-extent maybe-swap))
(mapc #'maybe-swap fns))
states)))

(defun swap (list n1 n2)
"Non-destructive equivalent of rotatef."
(setq list (copy-list list))
(rotatef (nth n1 list) (nth n2 list))
list)

 

Όταν κάνω compile τον κώδικα μου βγάζει 2 warnings:

1) Warning in (subfunction maybe-swap next-boards): P assumed special

2) Warning in next-boards: Failed to find name maybe-swap in declaration (dynamic-extent maybe-swap).

 

Κάθε βοήθεια ευπρόσδεκτη!!!!

 

http://www.insomnia.gr/forum/showthread.php?t=373038 ..

http://www.insomnia.gr/forum/showpost.php?p=3316427&postcount=5 .. :P

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...