| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > LISP > определить функцию |
| Автор: InKaterina 7.12.2010, 00:48 |
| Извиняюсь за поздний визит, но больше нет сил.за lisp села только сегодня, что то он мне не дается. задача такая: Определить функцию, прибавляющую заданное число к каждому элементу (на всех уровнях) указанного списка. Заранее спасибо |
| Автор: Ryukzak 7.12.2010, 08:02 |
| (defn list-inc [lst] (cond (list? lst) (map list-inc lst) :else (+ 1 lst)) Работает так: Усли в шункцию подак не список - то делает предположение, что это число, и возвращается его инкремент. В случае если это список (list? lst), то ко всем его элементам (map) рекурсивно применяется функция инкремента. Диалект - clojure, в случае scheme, если не ошибаюсь, будет так: (defun list-inc (lst) (cond ((list? lst) (map list-inc lst)) (:t (+ 1 lst))) Но точно не уверен. |
| Автор: VH_ 7.12.2010, 13:13 | ||
|
| Автор: InKaterina 7.12.2010, 14:20 |
| спасибо за ответ! смысл поняла, дальше разберусь! |