From: pimjager Date: Thu, 23 Jun 2016 07:45:50 +0000 (+0200) Subject: stupid higher order functions X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=b305de2b1bbf1f5a77e0103764364b1db670cbc2;p=cc1516.git stupid higher order functions --- diff --git a/examples/higher.spl b/examples/higher.spl index 4fdde0f..c1ad6d6 100644 --- a/examples/higher.spl +++ b/examples/higher.spl @@ -42,6 +42,16 @@ plus(x, y){ return x + y; } +ap(f, x) { return f(x); } + +mapF(f, xs) { + if(isEmpty(xs)) { + return []; + } else { + return (ap(f, xs.hd)) : mapF(f, xs.tl); + } +} + main(){ var x = 5; @@ -50,7 +60,10 @@ main(){ var plus = \x y->x+y; var g = map(plus, [1,2,3]); + var is = mapF(\f->f(1), g); //var is = map(\f->f(1), g); + var p = g.hd; + var q = p(1); //print("is.hd", is.hd);