diff --git a/scheme/base.sld b/scheme/base.sld index c6839bb1..144d11b2 100644 --- a/scheme/base.sld +++ b/scheme/base.sld @@ -764,7 +764,8 @@ (apply f cars) (recur cdrs))))) ;; Fast path. - (if (eq? 1 (length lis1)) + ;(if (eq? 1 (length lis1)) + (if (null? (cdr lis1)) ;; O(1) instead of O(n) for length (f (car lis1)) (begin (f (car lis1)) (for-each f (cdr lis1)))))))