尝试学习如何在 Scala 中编写 monad,遇到了一些麻烦
鉴于快速代码示例
import Control.Monad
newtype LJ a = LJ { session :: a }
instance Monad LJ where
return s = LJ s
(>>=) m f = f ( session m )
instance Functor LJ where
fmap f m = LJ . f $ session m
type SimpleLJ = LJ String
auth :: String -> String -> SimpleLJ
auth = undefined
readFeed :: String -> SimpleLJ
readFeed = undefined
closeFeed :: String -> SimpleLJ
closeFeed = undefined
proceed = auth "123" "456" >>= readFeed >>= closeFeed
我如何在 Scala(不是 scalaz)中写同样的东西?据我所知,在 scala 中实现 map/flatMap 方法就足够了,但是这里的 return 是什么?以及如何在for语句中没有自由变量的情况下进行绑定?