From e41ade0f54d47ec3e07593f0763521aedc8ad390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 18 Mar 2019 18:25:25 +0100 Subject: Assorted comments and cleanup. --- control/monad/state.scm | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'control/monad/state.scm') diff --git a/control/monad/state.scm b/control/monad/state.scm index f7190af..b5fefe3 100644 --- a/control/monad/state.scm +++ b/control/monad/state.scm @@ -2,9 +2,8 @@ #:use-module (oop goops) #:use-module (ice-9 match) #:use-module (control monad) - #:use-module (data functor) #:export (return-state run-state get put modify) - #:re-export (>>= >> fmap)) + #:re-export (>>= >> fmap return)) ;; Alternative implementation of get. @@ -49,14 +48,16 @@ ((v _) ((proc (f v)) new-st-list))))) -(define-stateful-method ((>> (a ) (b )) st-list-a) - (let ((st-list-b ((proc a) st-list-a))) - ((proc b) st-list-b))) +;; (define-stateful-method ((>> (a ) (b )) st-list-a) +;; (let ((st-list-b ((proc a) st-list-a))) +;; ((proc b) st-list-b))) (define-stateful ((return-state v) st-list) "Sets the return value to v" (cons v (cdr st-list))) +(define-method (return (a )) return-state) + (define-stateful ((get) st-list) "Sets the return value of state to st." (match st-list @@ -72,10 +73,10 @@ ((r s) (list '() (proc s))))) -(define-stateful-method ((fmap (f ) (s )) st-list) - (match ((proc s) st-list) - ((r st) - (list (f r) st)))) +;; (define-stateful-method ((fmap (f ) (s )) st-list) +;; (match ((proc s) st-list) +;; ((r st) +;; (list (f r) st)))) (define-method (run-state (st ) init) "Exec state with init as starting state value and st." -- cgit v1.2.3