X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=rank2%2Ftest.icl;h=fb00656b816dd27d330c0ad636e0f15939781cbb;hb=e5aaa59a63adaafb54d4845a06e16c4ef37c1b5f;hp=81685e2827be9fcc53ef4964a4fa92747a001d03;hpb=4d28321457e22e89ba840402738a53e7cc32e7f5;p=clean-tests.git diff --git a/rank2/test.icl b/rank2/test.icl index 81685e2..fb00656 100644 --- a/rank2/test.icl +++ b/rank2/test.icl @@ -25,12 +25,30 @@ instance expr Print where lit i = Print (toString i) +. (Print l) (Print r) = Print (l +++ "+" +++ r) -printEval :: (A.v: v a | expr v) -> (Maybe a, String) -printEval f = (eval f, let (Print p) = f in p) +//printEval :: (A.v: v a | expr v & + (v Int)) -> (Maybe a, String) +//printEval :: (A.v: v a | expr v & + (v Int)) -> (Maybe a, String) +//printEval f = (eval f, print f) + +printEval` :: (v a) (w a) -> (Maybe a, String) | expr v & expr w +printEval` f1 f2 = (eval f1, print f2) + +printEval f :== printEval` f f + +//x = lit 4 + lit 28 +//y = lit 4 +. lit 28 //Mag niet +//Start = printEval (lit 4 +. lit 38) Start :: (Maybe Int, String) -Start = printEval (lit 4 +. lit 38) +//Start = printEval (lit 2 + lit 40) +Start = printEval` expr expr +//Start = printEval expr + +expr :: v Int | expr v & + (v Int) +expr = lit 4 + lit 38 +//Start = printEval (lit 4 +. lit 38) + +//Start = eval (lit 4 + lit 38) //Mag wel -//Start = let (Print f) = lit 4 + lit 38 in f +//Start = print (lit 4 + lit 38)