Функция describe-paths
(из текстовой приключенческой игры в Land of Lisp !) Генерирует описания путей, идущих из заданного местоположения.Страница 74-77 в Страна Лисп объясняет роли mapcar
и append
в примере.
(cdr (assoc location edges))
предоставляет список всех путей, идущих отместоположение, например, для местоположения living-room
:
((GARDEN WEST DOOR)
(ATTIC UPSTAIRS LADDER))
mapcar
вызывает функцию describe-path
для каждого из путей, собирая описания путей в список, где каждый из подсписковэто описание пути:
((THERE IS A DOOR GOING WEST FROM HERE.)
(THERE IS A LADDER GOING UPSTAIRS FROM HERE.))
Затем функция append
применяется к списку описаний путей, объединяя его в плоский список:
(THERE IS A DOOR GOING WEST FROM HERE. THERE IS A
LADDER GOING UPSTAIRS FROM HERE.)