From bf7dfe94bdb97cc13f67559f398c8f3a7ca61419 Mon Sep 17 00:00:00 2001 From: Scott Richmond Date: Thu, 20 Jun 2024 16:36:01 -0400 Subject: [PATCH] fix `fold`/empty list bug --- prelude.ld | 2 ++ src/ludus.janet | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) 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