- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是绑定(bind)方法的类型声明:
(>>=) :: (Monad m) => m a -> (a -> m b) -> m b
我的阅读方式如下:将返回包装值的函数应用于包装值。
此方法作为 Monad 类型类的一部分包含在 Prelude 中。这意味着有很多情况需要它。
好吧,但是我根本不明白为什么这是一个典型案例的典型解决方案。
如果您已经创建了一个返回包装值的函数,为什么该函数尚未采用包装值?
换句话说,有许多函数采用普通值但返回包装值的典型情况是什么? (而不是获取包装值并返回包装值)
最佳答案
值的“展开”正是您在处理 monad 时想要隐藏的内容,因为正是这一点导致了大量的样板文件。
例如,如果您有一系列操作返回您想要组合的 Maybe
值,则如果您收到一个值,则必须手动传播 Nothing
:
nested :: a -> Maybe b
nested x = case f x of
Nothing -> Nothing
Just r ->
case g r of
Nothing -> Nothing
Just r' ->
case h r' of
Nothing -> Nothing
r'' -> i r''
这就是绑定(bind)为您所做的事情:
Nothing >>= _ = Nothing
Just a >>= f = f a
所以你可以写:
nested x = f x >>= g >>= h >>= i
某些 monad 根本不允许您手动解压值 - 最常见的示例是 IO。从 IO
获取值的唯一方法是 map
或 >>=
,这两种方法都需要您在输出中传播 IO .
关于haskell - 为什么存在bind(>>=)?没有绑定(bind)的解决方案很丑陋的典型情况是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23443072/
有什么方法可以使用常用工具(ffmpeg?mplayer/mencoder?mkvmerge?等)来查找关键帧在给定视频文件中出现的频率? {从而找到最小搜索大小?}这似乎是一个显而易见的统计数据,“
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 2 年前。 Improve
我正在阅读Intel的SSD产品specification。那里有一张桌子说 Latency (typical) read/write < 10 us 但是没有更多细节可以解释这个数字。有人知道“典型
出于好奇:典型的 Linux 发行版中最古老的代码/包是什么?电子书?海湾合作委员会? 最佳答案 Sun RPC 很老了,它在 C 库中: http://blogs.oracle.com/webmin
一个常见的假设是 1/x * x == 1。在符合 IEEE 754 标准的常见硬件上打破这个的最小正整数是多少? 当乘法逆的假设失败时,写得不好的有理算术就会停止工作。由于包括 C 和 C++ 在内
流行手机型号支持的典型触摸点数量是多少?我在基础研究中看到低至 2 和高至 5,但我希望能够将其映射到实际手机和更好的限制! 最佳答案 两部手机的触控点数据: Galaxy S 5 LG
我讨厌讨厌IE!既然我已经咆哮了,我确实需要一些帮助。我这里有这个网站。 http://pearsonlyle.uwpistol.net/galleries/susie-theodorou/edito
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
作为来自企业 IT 的 Node.js 初学者,我无法理解 Node.js 用法的某一方面。我将我的问题分为两部分。 问题 1) 严格从可扩展性的角度来看,I/O 密集型 Web 应用程序如何使用 N
我希望我的问题是合法的......我问这个问题是因为在阅读了许多博客,玩了许多示例应用程序和官方 API 1 周后,我仍然很困惑,从哪里开始编码...... 总的来说,就浏览器之间的系统架构而言 W
这是我的汽车类(class): public class Car { private int FGNr; private String name; private String type; priva
我认为我的问题标题清楚地表达了我需要的信息的本质。我用谷歌搜索了 where is the "applies to list" in vba excel以及其中的一些变体,都带有如图所示的引号,这应该
我是一名优秀的程序员,十分优秀!