From 2754eae6d0c66b2838dc7566904d920ce216dddc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Sat, 10 Nov 2018 18:43:54 +0100 Subject: Fixed up examples. --- examples.scm | 45 ++++++++++----------------------------------- 1 file changed, 10 insertions(+), 35 deletions(-) (limited to 'examples.scm') diff --git a/examples.scm b/examples.scm index a2f2319..3b67f60 100644 --- a/examples.scm +++ b/examples.scm @@ -10,52 +10,27 @@ (data optional) (data writer)) -(do (just x) <- (just 10) +(do x <- (just 10) x) ; => 10 (do let y = (just 10) - (just x) <- y + x <- y (+ x 5)) ; => 15 -(do (just x) <- (nothing) +(do x <- (nothing) (+ x 5)) ; => [Nothing] -;;; +(do x <- (just 10) + y <- (just 20) + (+ x y)) ; => 30 -(do let either = left 10 - (left x) <- either - x) ; EVALUATION ERROR +;;; ;; Int -> Writer Int String (define (log-number n) (writer n (format #f "Got nuber: ~a" n))) -(define (mult-with-log) - (do (writer a) <- (log-number 3) - (writer b) <- (log-number 5) - (* a b))) - -(do (writer a) <- (log-number 1) - a) ; EVALUATION ERROR - -(begin { (log-number 1) >>= log-number }) -;; => [Writer 1, "Got nuber: 1, Got nuber: 1"] - -(do (writer a) <- (log-number 3) - (writer b) <- (log-number 5) +(do a <- (log-number 3) + b <- (log-number 5) (writer (* a b) "")) -;; EVALUATION ERROR -;; => [Writer 3, "Got nuber: 3, base"] - -(log-number 3) ; => [Writer 3, "Got nuber: 3"] -(just 1) ; => [Just 1] - -(do let y = 5 - (just x) <- (just 10) - (just (* x y))) -;; => [Just 50] - -;;; TODO -;;; '<- and 'let can't be used after '<- - - +;; => [Writer 15, "Got nuber: 3, Got nuber: 5, "] -- cgit v1.2.3