From e650a80856edc1d1df1f163c3f84082455717fa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 18 Mar 2019 18:43:51 +0100 Subject: Compleately redid file structure. --- control/monad/procedures.scm | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 control/monad/procedures.scm (limited to 'control/monad/procedures.scm') diff --git a/control/monad/procedures.scm b/control/monad/procedures.scm deleted file mode 100644 index 707dc0b..0000000 --- a/control/monad/procedures.scm +++ /dev/null @@ -1,33 +0,0 @@ -(define-module (control monad procedures) - #:use-module (oop goops) - #:use-module (srfi srfi-1) ; concatenate! - #:export (>> >>= return)) - -(define-generic return) -(define-method (return (a )) identity) -(define-method (return (a )) list) - -(define-generic >>=) - -(define-method (>>= (a ) (proc )) - (proc a)) - -(define-method (>>= (this ) proc) '()) -(define-method (>>= (this ) - (proc )) - (concatenate! (map proc this))) - -(define-generic >>) - -(define-method (>> (a ) (b )) - (>>= a (lambda args b))) - -(define-method (>> (a ) (b )) '()) -(define-method (>> (a ) (b )) '()) -(define-method (>> (a ) (b )) '()) -(define-method (>> (a ) (b )) - (concatenate! (map (const b) a))) - -;; bind :: Monad m => m a -> (a -> m b) -> m b -;; return :: Monad m => a -> m a -;; map :: Functor f => (a -> b) -> f a -> f b -- cgit v1.2.3