aboutsummaryrefslogtreecommitdiff
path: root/frontend/utilities.dcl
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/utilities.dcl')
-rw-r--r--frontend/utilities.dcl17
1 files changed, 16 insertions, 1 deletions
diff --git a/frontend/utilities.dcl b/frontend/utilities.dcl
index 66c2866..66bdc2f 100644
--- a/frontend/utilities.dcl
+++ b/frontend/utilities.dcl
@@ -26,7 +26,22 @@ isSpecialChar :: ! Char -> Bool
isNotEmpty :: ![a] -> Bool
-mapSt :: !(.a -> (.st -> (.c,.st))) ![.a] !.st -> (![.c],!.st)
+//mapSt :: !(.a -> (.st -> (.c,.st))) ![.a] !.st -> (![.c],!.st)
+
+mapSt f l s :== mapSt l s
+where
+ mapSt [x : xs] s
+ # (x, s) = f x s
+ mapSt_result = mapSt xs s
+ (xs, _) = mapSt_result
+ #! s = second_of_2_tuple mapSt_result
+ = ([x : xs], s)
+ mapSt [] s
+ = ([], s)
+
+second_of_2_tuple t :== e2
+ where
+ (_,e2) = t
app2St :: !(!.(.a -> .(.st -> (.c,.st))),!.(.e -> .(.st -> (.f,.st)))) !(.a,.e) !.st -> (!(.c,.f),!.st)