Решение упражнения 2.23 из SICP

27 January, 2008 (13:34) | Решения упражнений

Есть несколько способов записать подобную процедуру for-each. Я предлагаю следующий:

(define (for-each proc items)
  (cond ((not (null? items))
         (proc (car items)) (for-each proc (cdr items)))))

Он хорош своей краткостью. Конструкция cond используется для создания блочной структуры, так как нам нужно выполнить сразу два действия:

  1. обработать первый элемент списка;
  2. рекурсивно вызвать себя для хвоста списка.

Write a comment