diff --git a/day01-hard/main.scm b/day01-hard/main.scm index 947ea07..8948cb0 100755 --- a/day01-hard/main.scm +++ b/day01-hard/main.scm @@ -55,7 +55,7 @@ (assert-eq "flat test 1 failed" '(1 2 3 4 5 (6 7) 8) - (flat '((1 2) (3 4) (5 (6 7) 8)))) + (flat '((1 2) () (3 4) (5 (6 7) 8)))) (define (filter predicate) (reduce-right '() (lambda (current accumulator) @@ -129,13 +129,10 @@ ((compose (list (coalesce-not-empty (lambda () (f (cdr values)))) flat - (filter id) - (map - (lambda (token) - ((truthy-chaining (compose (list - (map (prepend (car token))) - (lambda (rest) (f (next rest values)))))) - (starts-with (cdr token) values)))))) + (map (lambda (token) ((compose (list + (map (prepend (car token))) + (lambda (rest) (if rest (f (next rest values)) '())))) + (starts-with (cdr token) values)))))) tokens)))))) (define (tokenize tokens)