From a1d619ac4679f246a92ee5e557ed1341f5629221 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Mon, 19 Jan 2015 01:36:16 -0400 Subject: [Enhancement] .class files are now stored inside an "output" directory. --- test2.lux | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'test2.lux') diff --git a/test2.lux b/test2.lux index 15bcecdbc..d036bbde4 100644 --- a/test2.lux +++ b/test2.lux @@ -388,15 +388,6 @@ (lambda [state] (#Ok [state state]))) -(def monadic-dup - (exec [foo get-state - bar get-state - baz (return 1000)] - (return (+ (+ foo bar) baz)))) - -(def (run-state monad state) - (monad state)) - (def list-map #Nil) (def (put key val map) @@ -424,6 +415,25 @@ [?key ?val] (fold concat "" (list "#" ?key " " (show ?val))))) +(def (within slot monad) + (lambda [state] + (let =return (monad (get slot state)) + (case =return + (#Ok ?state ?value) + (#Ok (put slot ?state state) ?value) + + _ + =return)))) + +(def monadic-dup + (exec [foo get-state + bar get-state + baz (return 1000)] + (return (+ (+ foo bar) baz)))) + +(def (run-state monad state) + (monad state)) + (def (interpose elem list) (case list (#Cons x (#Cons y list')) -- cgit v1.2.3