我有以下代码,它使用 monad 链接函数,绑定中间结果。
r :: Int -> Maybe Int
r n = do
r1 <- f1 n
r2 <- f2 r1
r3 <- f3 r2
r4 <- f4 r3
return r4
Run Code Online (Sandbox Code Playgroud)
其中 f1-f4 的类型签名是
f1 :: Int -> Maybe Int。
该代码有效,但是我想避免命名中间结果(r1-r4)。
如果我不使用 monad,我可以简单地写r = f1 . f2 . f3 . f4. 对于 monad 来说,类似的事情可能吗?
haskell ×1