aboutsummaryrefslogtreecommitdiffhomepage
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
commitb0eb28d7ea4eb75efce79ab7493b9e21842b80b4 (patch)
tree08ac30126986a5abd323a46c7eff436b1ac28c9f /src/list_util.sml
parentdd6e7d3895ffed07869aa8ec6a51abaf9c602ca9 (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