Dlaczego ta mapa powoduje, że mój REPL zamarza?

Wta bardzo przydatna odpowiedźzasugerowano, że mogę zastąpić ten kod:

(defun describe-paths (location edges)
  (apply (function append) (mapcar #'describe-path
               (cdr (assoc location edges)))))

Z tym:

(defun describe-paths-mapcan (location edges)
  (mapcan #'describe-path
               (cdr (assoc location edges))))

Z pewnością rozumiem koncepcyjnie, dlaczego to powinno działać, ale tak nie jest; druga odmiana zawiesza mój REPL, a znak CL nigdy nie powraca. Muszę ponownie uruchomić SLIME. Więc jasprawdził toi zastanawiam się, czy fakt, że mapcan nie jest używanylist, ale raczejnconc, dlaczego? Dlatego nie są to właściwie funkcjonujące bloki kodu?

Dla ciekawskich mijam to:

(describe-paths-mapcan 'living-room *edges*)

Gdzie*edges* jest:

(defparameter *edges* '((living-room (garden west door)
             (attic upstairs ladder))
            (garden (living-room east door))
            (attic (living-room downstairs ladder))))

I:

(defun describe-path (edge)
  `(there is a ,(caddr edge) going ,(cadr edge) from here.))

questionAnswers(1)

yourAnswerToTheQuestion