From 8675beae4f7a8415fc2e88451da95dc068719194 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 13 Apr 2010 02:28:56 +0000 Subject: Restructure as a source translation based compiler. Implement support for closures (via lambda lifting phase). git-svn-id: http://svn.drobilla.net/resp/resp@254 ad02d1e2-f140-0410-9f75-f8b11f17cedd --- test/closure.resp | 5 +++++ test/def.resp | 4 ++-- test/deffn.resp | 3 +++ test/inlinefn.resp | 1 + test/nest.resp | 2 +- 5 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 test/closure.resp create mode 100644 test/deffn.resp create mode 100644 test/inlinefn.resp (limited to 'test') diff --git a/test/closure.resp b/test/closure.resp new file mode 100644 index 0000000..fb5a41d --- /dev/null +++ b/test/closure.resp @@ -0,0 +1,5 @@ +(def (multiplier factor) (fn (x) (* (+ x 0) factor))) + +(def doubler (multiplier 2)) + +(doubler 3) diff --git a/test/def.resp b/test/def.resp index dd9a0c8..52605b0 100644 --- a/test/def.resp +++ b/test/def.resp @@ -1,7 +1,7 @@ (def foo (fn (x) - (def y 2) - (def z 3) + (def y x) + (def z (+ x 1)) z)) (foo 3) diff --git a/test/deffn.resp b/test/deffn.resp new file mode 100644 index 0000000..c413ecd --- /dev/null +++ b/test/deffn.resp @@ -0,0 +1,3 @@ +(def f (fn (x) (+ x 1))) + +(f 2) diff --git a/test/inlinefn.resp b/test/inlinefn.resp new file mode 100644 index 0000000..2f055bd --- /dev/null +++ b/test/inlinefn.resp @@ -0,0 +1 @@ +((fn (x) (+ x 1)) 1) diff --git a/test/nest.resp b/test/nest.resp index 3085737..c15c453 100644 --- a/test/nest.resp +++ b/test/nest.resp @@ -1,6 +1,6 @@ (def (f x) (def (g y) (* y 2)) - (g x)) + (g (+ x 1))) (f 3) -- cgit v1.2.1