infix prefix functions
[clean-tests.git] / datatype / Main.hs
index c68cb85..35d5ae6 100644 (file)
@@ -93,17 +93,17 @@ f4
 
 f5 :: (List' v, Expression v, Function (v (List Int)) v) => Main (v Int)
 f5
-    = fun ( \sumf->(\l->[cp|case l of
+    = fun ( \sumf->(\l->[dsl|case l of
                 Nil -> 0
-                Cons e rest -> e +. sumf(rest)
+                Cons e rest -> e + sumf(rest)
             |])
 --    :- Main {unmain=sumf $ lit (1 :: Int) `cons` (lit 2 `cons` (lit 3 `cons` nil))}
-    :- Main {unmain=sumf $ lit (1 :: Int) `cons` (lit 2 `cons` (lit 3 `cons` nil))}
+    :- Main {unmain=[dsl|sumf (1 `cons` (2 `cons` (3 `cons` nil)))|]}
     )
 
 f6 :: (TupleR' v, Expression v, Function (v (TupleR Int Char)) v) => Main (v Int)
 f6
-    = fun ( \firstfun->(\l->[cp|case l of
+    = fun ( \firstfun->(\l->[dsl|case l of
                 TupleR {first=f} -> f
             |])
 --    :- Main {unmain=sumf $ lit (1 :: Int) `cons` (lit 2 `cons` (lit 3 `cons` nil))}
@@ -112,9 +112,9 @@ f6
 
 f7 :: (Expression v, Function (v Int) v) => Main (v Int)
 f7
-    = fun ( \ffac->(\l->[cp|case l of
+    = fun ( \ffac->(\l->[dsl|case l of
                 0 -> 1
-                n -> n *. ffac (n -. 1)
+                n -> if True then 1 else n * ffac (n - 1)
             |])
     :- Main {unmain=ffac (lit 10)}
     )
@@ -122,10 +122,10 @@ f7
 f7' :: (DSL v, List' v, Function (v (List Int)) v) => Main (v Int)
 f7'
     =    fun ( \fromto->(
-            \(from, to)->if' (from >. to) nil (from `cons` fromto (from +. lit 1, to))
+            \(from, to)->[dsl|if from > to then nil else from `cons` fromto (from + 1, to)|]
     ) :- fun ( \mullist->(
-            \l->[cp|case l of
-                Cons e rest -> e *. mullist(rest)
+            \l->[dsl|case l of
+                Cons e rest -> e * mullist(rest)
                 Nil -> 1
             |]
     ) :- fun ( \fac->(