Решение упражнения 2.23 из SICP
Есть несколько способов записать подобную процедуру for-each. Я предлагаю следующий:
(define (for-each proc items)
(cond ((not (null? items))
(proc (car items)) (for-each proc (cdr items)))))
Он хорош своей краткостью. Конструкция cond используется для создания блочной структуры, так как нам нужно выполнить сразу два действия:
- обработать первый элемент списка;
- рекурсивно вызвать себя для хвоста списка.
Write a comment