Professional Documents
Culture Documents
#|
(enumerate-tree (a (b . c) . d))
;Value: (0 (1 . 2) . 3)
|#
monad.scm Fri Feb 25 11:42:10 2011 3
#|
(enumerate-tree (a (b . c) . d))
;Value: (0 (1 . 2) . 3)
|#
monad.scm Fri Feb 25 11:42:10 2011 4
#|
(enumerate-tree (a (b . c) . d))
;Value: (0 (1 . 2) . 3)
|#
monad.scm Fri Feb 25 11:42:10 2011 5
(define (get)
(lambda (state)
(cons state state)))
(enumerate-tree (a (b . c) . d))
;Value: (0 (1 . 2) . 3)
monad.scm Fri Feb 25 11:42:10 2011 8
(define (get)
(lambda (state)
(lambda (cont)
(cont state state))))
#|
;;; Monad laws, proved by symbolic evaluation.
;;; Monadic object above is : state -> (cont -> b)
(define f ; f : x -> M fx
(lambda (x)
(lambda (state)
(lambda (cont)
(cont (list f x)
(list fs state))))))
(define g ; g : x -> M gx
(lambda (x)
(lambda (state)
(lambda (cont)
(cont (list g x)
(list gs state))))))
monad.scm Fri Feb 25 11:42:10 2011 10