From 9a9f78a8dab77f476f82eb218c3d71aef55f13ec Mon Sep 17 00:00:00 2001 From: Joel Kronqvist Date: Sat, 23 Aug 2025 10:34:15 +0300 Subject: feat: repeat in stdlib --- stdlib.slip | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/stdlib.slip b/stdlib.slip index dcedafc..2568354 100644 --- a/stdlib.slip +++ b/stdlib.slip @@ -67,6 +67,25 @@ )) +(let repeat + (fn (fun n) ((Int -> Nil) Int) Nil + + ((let repeat-inner (fix + (fn repeat-inner' (((Int -> Nil) Int Int) -> Nil) + (((Int -> Nil) Int Int) -> Nil) + (fn (fun index until) ((Int -> Nil) Int Int) Nil + (case (<= index until) + (true (discard (fun index) (repeat-inner' fun (++ index) until))) + (_ ())) + ) + ) + )) + + (repeat-inner fun 1 n)) + ) +) + + (let left-or (fn (sum def) ((Sum L R) L) L (case sum -- cgit v1.2.3