From 067a1900e73c40c502f57b6d54a49549c968db83 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Fri, 19 Dec 2014 23:40:31 -0400 Subject: Now the language has full closures. --- test2.lang | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'test2.lang') diff --git a/test2.lang b/test2.lang index e300ce256..8f9b7c817 100644 --- a/test2.lang +++ b/test2.lang @@ -27,19 +27,24 @@ (def (constant x y) x) +(def (constant2 x) + (lambda [y] x)) + (def (main args) (if true - (let output "IT WORKS!" - (_. (_.. System out) (println ((lambda [x y] output) "TRUE" "YOLO")))) + (let f (lambda [x] (lambda [y] (x y))) + (let g (lambda [x] x) + (_. (_.. System out) (println (f g "WE'VE GOT CLOSURES!"))))) (_. (_.. System out) (println "FALSE")))) -## Doesn't work yet... -#( (let output "IT WORKS!" - (_. (_.. System out) (println (((lambda [x] (lambda [y] output)) "TRUE") "YOLO")))) )# - ## All of these work :D #( (let output "IT WORKS!" (_. (_.. System out) (println ((lambda [x y] output) "TRUE" "YOLO")))) )# +#( (let output "IT WORKS!" + (let f (lambda [x] (lambda [y] output)) + (_. (_.. System out) (println (f "TRUE" "YOLO"))))) )# +#( (let output "IT WORKS!" + (_. (_.. System out) (println ((lambda [x] (lambda [y] output)) "TRUE" "YOLO")))) )# #( (let output ((lambda [x y] x) "TRUE" "YOLO") (_. (_.. System out) (println output))) )# #( (let f (lambda [x y] x) -- cgit v1.2.3