小编Jef*_*ang的帖子

(Haskell) 在 do 块中使用绑定来链接函数的语法

我有以下代码,它使用 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

2
推荐指数
1
解决办法
120
查看次数

标签 统计

haskell ×1