diff options
author | martinw | 2000-11-01 15:42:13 +0000 |
---|---|---|
committer | martinw | 2000-11-01 15:42:13 +0000 |
commit | 82bd65297bb04bdd2b144e2c426b6a548024ff6e (patch) | |
tree | 84d139b61c5b908fc66df5af7027f215814b0c87 /frontend/utilities.dcl | |
parent | changes were necessary due to different numberings due to caching of dcl (diff) |
improved code for explicit imports,
moved all switches to syntax module
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@277 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/utilities.dcl')
-rw-r--r-- | frontend/utilities.dcl | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/frontend/utilities.dcl b/frontend/utilities.dcl index a513a36..e6fa88d 100644 --- a/frontend/utilities.dcl +++ b/frontend/utilities.dcl @@ -120,6 +120,32 @@ iterateSt op st :== iterate_st op st = iterate_st op st = st +mapFilterYesSt f l st + :== map_filter_yes_st l st + where + map_filter_yes_st [] st + = ([], st) + map_filter_yes_st [h:t] st + #! (opt_f_h , st) = f h st + (t2, st) = map_filter_yes_st t st + f_h_t2 = optCons opt_f_h t2 + st = st + = (f_h_t2, st) + +iMapFilterYesSt f fr to st + :== i_map_filter_yes_st fr to st + where + i_map_filter_yes_st fr to st + | fr >= to + = ([], st) + #! (opt_f_fr, st) = f fr st + (t, st) = i_map_filter_yes_st (inc fr) to st + f_fr_t2 = optCons opt_f_fr t + st = st + = (f_fr_t2, st) + +optCons :: !(Optional .a) !u:[.a] -> v:[.a] ,[u <= v] + revAppend :: ![a] ![a] -> [a] // Reverse the list using the second argument as accumulator. revMap :: !(.a -> .b) ![.a] !u:[.b] -> u:[.b] |