Jun 24, 2014 04:15
Хотел поюзать fold, но как-то он в задачу не вписывался,
сделал модифицированный fold, который можно при необходимости
прервать, путем возврата в качестве остатка не реального
остатка, а какой-нибудь пустышки:
(define (gfold f a l)
(if (null? l) a
(let ((x (f a (car l) (cdr l))))
(gfold f
(car x)
(cdr x)))))
В моём случае собственно при обнаружении определенных данных
можно сразу вычислить аккумулятор, не бегая почём зря по
хвосту входного списка.
scheme,
fp