diff options
author | Adam Chlipala <adamc@hcoop.net> | 2009-05-12 18:02:25 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2009-05-12 18:02:25 -0400 |
commit | b0eb28d7ea4eb75efce79ab7493b9e21842b80b4 (patch) | |
tree | 08ac30126986a5abd323a46c7eff436b1ac28c9f /src/list_util.sml | |
parent | dd6e7d3895ffed07869aa8ec6a51abaf9c602ca9 (diff) |
Improvements while working on Graftid
Diffstat (limited to 'src/list_util.sml')
-rw-r--r-- | src/list_util.sml | 22 |
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 |