sách gpt4 ai đã đi

haskell - 了解 `foldM`

In lại 作者:行者123 更新时间:2023-12-03 15:04:48 34 4
mua khóa gpt4 Nike

我在看foldM为了获得关于如何使用它的直觉。
foldM :: Monad m => (a -> b -> m a) -> a -> [b] -> m a
在这个简单的例子中,我只返回 [Just 100] .但是,如果我想使用 b 怎么办? ?

ghci> foldM (\a _ -> return a) (Just 100) [1,2,3] :: [Maybe Int]
[Just 100]

我很困惑如何使用 bhiện hữu (a -> b -> m a) 内.

请帮助我了解此功能以及如何使用 b .

1 Câu trả lời

这是一个愚蠢的例子。假设我们想对列表求和,并确保部分和永远不会超过(比如)10;因此:

> let ensure p x = x <$ guard (p x)
> foldM (\a b -> ensure (<10) (a+b)) 0 [1,2,3] :: Maybe Integer
Just 6
> foldM (\a b -> ensure (<10) (a+b)) 0 [5,5,5,-10] :: Maybe Integer
Nothing

关于haskell - 了解 `foldM`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31084771/

34 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com