]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/monads/monads.factor
inverse: Fix docs
[factor.git] / extra / monads / monads.factor
index 73e2b98eb282c404d2c63ab4bbd1b5928eda0e09..b42d5c6fed8ef38e1e815541837b509f0199bfa6 100644 (file)
@@ -1,14 +1,12 @@
 ! Copyright (C) 2008 Slava Pestov
 ! Copyright (C) 2008 Slava Pestov
-! See http://factorcode.org/license.txt for BSD license.
-USING: arrays kernel sequences sequences.deep splitting
-accessors fry locals combinators namespaces lists lists.lazy
-shuffle ;
+! See https://factorcode.org/license.txt for BSD license.
+USING: accessors arrays kernel lists lists.lazy sequences ;
 IN: monads
 
 ! Functors
 IN: monads
 
 ! Functors
-GENERIC# fmap 1 ( functor quot -- functor' )
-GENERIC# <$ 1 ( functor quot -- functor' )
-GENERIC# $> 1 ( functor quot -- functor' )
+GENERIC#: fmap 1 ( functor quot -- functor' )
+GENERIC#: <$ 1 ( functor quot -- functor' )
+GENERIC#: $> 1 ( functor quot -- functor' )
 
 ! Monads
 
 
 ! Monads
 
@@ -127,7 +125,7 @@ M: list-monad fail   2drop nil ;
 
 M: list monad-of drop list-monad ;
 
 
 M: list monad-of drop list-monad ;
 
-M: list >>= '[ _ swap lazy-map lconcat ] ;
+M: list >>= '[ _ swap lmap-lazy lconcat ] ;
 
 ! State
 SINGLETON: state-monad
 
 ! State
 SINGLETON: state-monad
@@ -188,7 +186,7 @@ M: writer-monad fail   "Fail" throw ;
 
 : run-writer ( writer -- value log ) [ value>> ] [ log>> ] bi ;
 
 
 : run-writer ( writer -- value log ) [ value>> ] [ log>> ] bi ;
 
-M: writer >>= '[ [ _ run-writer ] dip '[ @ run-writer ] dip append <writer> ] ;
+M: writer >>= '[ [ _ run-writer ] dip '[ @ run-writer ] dip prepend <writer> ] ;
 
 : pass ( writer -- writer' ) run-writer [ first2 ] dip swap call( x -- y ) <writer> ;
 : listen ( writer -- writer' ) run-writer [ 2array ] keep <writer> ;
 
 : pass ( writer -- writer' ) run-writer [ first2 ] dip swap call( x -- y ) <writer> ;
 : listen ( writer -- writer' ) run-writer [ 2array ] keep <writer> ;