summaryrefslogtreecommitdiff
path: root/src/list_util.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-05-12 18:02:25 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-05-12 18:02:25 -0400
commit651ce2989ae98565bec96ea92e7c8ec3f1c8ea79 (patch)
tree08ac30126986a5abd323a46c7eff436b1ac28c9f /src/list_util.sml
parentdb57a76c6652bcda1de92b3bd15a8b3e648b6b78 (diff)
Improvements while working on Graftid
Diffstat (limited to 'src/list_util.sml')
-rw-r--r--src/list_util.sml22
1 files changed, 22 insertions, 0 deletions
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