From b0eb28d7ea4eb75efce79ab7493b9e21842b80b4 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Tue, 12 May 2009 18:02:25 -0400 Subject: Improvements while working on Graftid --- src/list_util.sml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/list_util.sml') diff --git a/src/list_util.sml b/src/list_util.sml index 235a9654..a2b6aeb2 100644 --- a/src/list_util.sml +++ b/src/list_util.sml @@ -146,6 +146,16 @@ fun mapi f = m 0 [] end +fun appi f = + let + fun m i ls = + case ls of + [] => () + | h :: t => (f (i, h); m (i + 1) t) + in + m 0 + end + fun foldli f = let fun m i acc ls = @@ -178,4 +188,16 @@ fun foldliMap f s = fm (0, [], s) end +fun appn f n = + let + fun iter m = + if m >= n then + () + else + (f m; + iter (m + 1)) + in + iter 0 + end + end -- cgit v1.2.3