Извините, если уже достал со своими идиотскими вопросами, но опять застрял на упражнении со списками.
Итак, задание:
Переопределить ф-цию count-leaves из п. 2.2.2 (там она была объявлена "по определению": если дерево пустое - 0, если атом - 1, в противном случае - (+ (count-leaves (car x)) (count-leaves (cdr x)))) в виде аккумуляции:
(define (count-leaves t)
(accumulate <??> <??> (map <??> <??>)))
Аккумуляция это такая штука:
(define (accumulate op initial sequence)
(if (null? sequence)
initial
(op (car sequence)
(accumulate op initial (cdr sequence)))))
Например, (accumulate + 0 '(1 2 3 4 5)) = 15
Ответ на:
комментарий
от satanic-mechanic

Ответ на:
комментарий
от seiken

Ответ на:
комментарий
от grob

Ответ на:
комментарий
от grob

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Получить список из листьев дерева (scheme) (2006)
- Форум Упражнение из SICP (2010)
- Форум SICP Упражнение 1.4 (2008)
- Форум Упражнение из SICP (2). (2010)
- Форум Не могу понять одну хрень с if в упражнении из SICP (2013)
- Форум SICP (2024)
- Форум SICP (2009)
- Форум SICP (2009)
- Форум SICP (2009)
- Форум [Курант] Упражнение (2011)