gpt4 book ai didi

haskell - haskell中有 `m a -> (a -> m b) -> m a`函数类型吗?

转载 作者:行者123 更新时间:2023-12-02 21:28:46 27 4
gpt4 key购买 nike

所以>>= :: m a -> (a -> m b) -> m b>> :: m a -> m b -> m b .

<* :: f a -> f b -> f a .

但我想要一些能m a -> (a -> m b) -> m a的东西,即实际上丢弃计算结果并保留原始结果。在我的例子中,这个计算结果只是一个返回 () 的 IO 操作。所以我只需要传递原始值即可。

有这样的功能吗?如果没有,我该如何撰写呢?还没有弄清楚。谢谢!

最佳答案

discardResult mx mf = do x <- mx
mf x
return x

虽然jozefg的解决方案更简单。

关于haskell - haskell中有 `m a -> (a -> m b) -> m a`函数类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22140672/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com