diff --git a/prelude.ld b/prelude.ld index 9753575..936a34b 100644 --- a/prelude.ld +++ b/prelude.ld @@ -192,7 +192,9 @@ fn list { fn fold { "Folds a list." + (f as :fn, []) -> [] (f as :fn, xs as :list) -> fold (f, xs, f ()) + (f as :fn, [], root) -> [] (f as :fn, xs as :list, root) -> loop (root, first (xs), rest (xs)) with { (prev, curr, []) -> f (prev, curr) (prev, curr, remaining) -> recur ( diff --git a/src/ludus.janet b/src/ludus.janet index 4485394..b8dd543 100644 --- a/src/ludus.janet +++ b/src/ludus.janet @@ -52,7 +52,8 @@ (comment # (do (def source ` -rest ([]) +fn id (x) -> x +map (id, []) `) (def out (-> source ludus