问题标签 [maybe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 也许单子构造
我目前正在努力解决 Haskell 的一个新元素:Monads。因此,我通过创建一个运算符的示例来介绍这一点,该运算符仅在不等于时才(>>=)
对类型执行函数(将其实际整数值作为参数) ,否则返回:Maybe
Nothing
Nothing
但是,我不太确定它的以下用法如何工作:
在我看来,(>>=)
运算符只需要一个Maybe
值和一个返回一个值的函数,但是在此示例使用代码中,它似乎需要 2 次Maybe
值和一次函数。但是有人告诉我,它会评估x
,将结果放入n
,然后评估y
,将结果放入y
,然后safediv
在两者上执行函数。虽然我看不到(>>=)
运营商在这里是如何发挥作用的;这是如何运作的?
swift - Swift 枚举中的默认初始化被忽略
我正在尝试Optional
在 Swift 中重新实现。我正在调用它Maybe
。我有 2 个 init,用于创建空版本或 nil 版本,一个拥有泛型类型:
但是,当我尝试创建一个 emptyMaybe
时,init()
不会调用初始化程序。相反,另一个init(_ something: T)
是用 调用的T = ()
。
这是怎么回事?为什么没有参数的init被忽略?
haskell - Haskell:更好的写作方式可能是 Endo?
由于network-api-support包,我刚刚发现了 Endo 类型,并且我发现需要能够将 Maybe 值放入 Endo 中。因此,我编写了一个名为 MaybeEndo 的函数。这是一个使用它的例子:
令我印象深刻的是,这似乎应该已经封装到某种类型的模式中。
haskell - 为可能没有值的数据类型指定字段的正确方法是什么
我想指定一个自定义数据类型,如下所示:
现在,如果我不需要始终指定颜色怎么办。这是正确的方法吗?
这是应该在 Haskell 中完成的方式吗?有没有其他选择,以及这样做的缺点?到目前为止,东西编译了,但我处于学习曲线的开始,只找到一个用过的地方,没有任何说明后续函数如何处理这种情况。
例如,通过颜色等访问值,以及 Show 函数最终会得到很多“Just Red”等。
haskell - 无法将预期类型“Int”与实际类型“m0 Int”匹配
我目前正在努力学习 Haskell。以下功能:
应该采用一个二维的双精度列表,表示一个矩阵,并确定哪一行在第一列中具有最大值。我知道有一些低效的部分,例如使用列表表示矩阵和使用转置,但我遇到的问题涉及以下编译器错误:
我不确定这m0
意味着什么,但我认为它意味着单子。所以,我认为这意味着该函数正在返回一个单子 int。对于理解这个问题以及如何解决它的任何帮助将不胜感激。
谢谢。
haskell - 在 State Monad 中构建关于错误处理的最小 Haskell 示例
我正在绞尽脑汁想了解如何将State
monad 与Maybe
.
让我们从一个具体的(并且故意微不足道/不必要的)示例开始,在该示例中,我们使用State
monad 来查找数字列表的总和:
凉爽的。
现在让我们对其进行修改,使其Nothing
在列表包含数字时返回 a 0
。换句话说,evalState addState' list
应该返回Nothing
(因为list
包含 a 0
)。我以为它可能看起来像这样......
...它有效,但我认为有更好的方法来做到这一点...
我玩过StateT
,MaybeT
但我无法让他们工作。我看过一些关于 Monad 变换器的介绍,但它们要么没有涉及这个特定的组合(即 State + Maybe),要么示例太复杂以至于我无法理解。
TL;DR:StateT
如果有人可以展示如何使用and MaybeT
(两个示例)编写这段(诚然微不足道的)代码,我将不胜感激。(我假设不使用转换器就不可能编写此代码 - 这是不正确的吗?)
PS我的理解是,这StateT
可能更适合这个例子,但从概念上看这两个例子会很有帮助,如果不是太麻烦的话。
更新:正如@Brenton Alker 所指出的,我上面的代码的第一个版本由于简单的错字(我缺少一个撇号)而不起作用。为了将问题集中在StateT
/的使用上MaybeT
,我正在更正上面的帖子。只是想包含这个注释来为他的帖子提供背景信息。
haskell - 空列表与可能表示 Haskell 中的计算失败
在Edx Haskell 课程中,Erik Meijer 反复声明Maybe
不应该使用该类型进行失败的计算。相反,应该为此使用空列表。
我的理解是Maybe
类型是个好东西,我们应该使用它。然而,一个列表似乎可以模拟所有的东西,一个Maybe
罐头模型等等……那么为什么我们需要这个Maybe
类型呢?
haskell - 在 Haskell 中返回某个类型的空对象
这是我正在尝试做的事情:
有任何想法吗?
exception - Clojure 中的惯用错误处理
当我戴上 C 帽子时,我想也许惯用的 Clojure 只是做简单的事情并检查返回值。
当我戴上我的 Java 帽子(不情愿地,我必须补充一下)时,我对自己想,既然 Clojure 在 JVM 上运行,那么自然的方式必须是使用 JVM 异常。
当我戴上功能性帽子时,我在想一定有某种单子构造或线程宏可以以可组合的方式处理错误。
那么在 Clojure 程序中处理错误的惯用方法是什么?
scala - 我们可以根据 Maybe monad 或 Continuation monad 来理解 error monad 吗?
我正在查看以下用于处理Scala 中的错误的代码:
现在我可以在这里看到使用Clojure中的 Maybe Monad 处理异常的代码:
在这里,Jim Duey 解释了关于 continuation 的异常处理:
(现在我知道所有单子在某种意义上都是延续- 我现在将把它放在一边。如果我犯了一个严重的错误 - 请帮助我,以便我可以纠正这个问题)。
我正试图围绕上面的这个 Scala 代码。我正在尝试确定它是基于Maybe还是基于Continuations。
我的问题是:我们可以根据 Maybe monad 或 Continuation monad 来理解 error monad 吗?