问题标签 [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.

0 投票
2 回答
144 浏览

haskell - 在描述 Delta 的列表上打开一个 Maybe (首先这是一个好主意吗?)

作为 Haskell 的新手,我正在阅读 StackOverflow 最受好评的问题、新问题等,而今天有这样一个:

Haskell:列表中相邻数字之间的最小距离

我想“好吧,我会在不看答案的情况下尝试”。首先,我写道:

那我就可以了minimum neighborsDistance [2,3,6,2,0,1,9,8] => 1

但我不太关心边缘情况是如何工作的,所以我想也许我会尝试使用 Maybe。我需要一种方法来调整递归规则以容忍“可能”的值,所以我在 Data.Maybe 上查看了Hoogle并发现fromMaybe......它看起来像我想要的那样:

但这给了我一个not in scope: fromMaybe错误。主要问题是“为什么那不起作用?”

另一个问题通常是关于 Haskell 的思维方式,当看到这样的事情时。这是对Maybe的不好使用吗?为什么head在空列表上调用时会抛出异常而不是返回 Maybe 类型?

我遇到的问题是试图用最小操作来统一距离计算。我假设你可以像这样打破它而不会失去显着的效率(这样它会以最小值或最大值或其他方式组成)?

0 投票
2 回答
2904 浏览

list - elm 列表推导,检索列表的第 n 个元素

当我注意到Elm不支持列表推导时,我试图在 Elm 中模拟魔方。在 Haskell 甚至 Python 中,我会写如下内容:

我在榆树找不到路。我必须编写的实际列表理解是(在 Haskell 中):

fromIntegral :: (Integral a, Num b) => a -> b变成. _ Integer_Num

在 Elm 中,我尝试使用数组:

我开始在Maybe类型方面遇到困难:

事实上,我必须查一下它们是什么。我没有解决可能的问题,而是对列表做了一些事情:

我不知道这是否有效或正确,但它在我尝试的情况下有效。


我想我的两个主要问题是:

  • Elm 支持列表推导吗?(我想只是使用map
  • 如何绕过maybe数组示例中的类型?
  • 调用head ( drop n x)获取列表的第 n 个元素是否有效?
0 投票
2 回答
186 浏览

haskell - 结合函子和单子

我是一个haskell新手,不知道如何以富有表现力的方式组合以下功能:

我想要这样的功能:

目前我正在这样做:

好吧,我认为,这真的很丑(好吧,这里只有字母作为名称,但真正的代码也很丑)。我想要的是功能的串联,它更具表现力,例如:

如何将单子函数与函子结合起来,是否有类似的东西or(比如Optional#orElse在 Java 8 中?)

0 投票
4 回答
9940 浏览

scala - 究竟是什么让 Option 成为 Scala 中的 monad?

我知道单子是什么以及如何使用它们。我不明白是什么让我们说,Option一个单子?

在 Haskell 中,一个 monadMaybe是一个 monad,因为它是从Monadclass 实例化的(它至少有 2 个必要的函数returnbind这使得 classMonad实际上是一个 monad)。

但在 Scala 中,我们得到了这个:

与单子无关。

如果我在 Scala 中创建自己的类,默认情况下它会是一个 monad 吗?为什么不?

0 投票
2 回答
3315 浏览

haskell - “无法将类型‘Maybe’与‘IO’匹配预期类型:IO String 实际类型:Maybe String”在 Haskell

我试图围绕 Monads 进行思考,并觉得如果我能解释为什么它不能编译,我会有更好的理解。

我得到的错误是

我意识到问题在于我正在尝试将 aMaybe与a 匹配IO,但我不完全确定如何将 Maybe'd 变量转换为 IO。任何帮助将不胜感激!

0 投票
6 回答
740 浏览

list - 类似于 catMaybes 的功能,但不计算任何值

我有一个这样的列表:

通过使用catMaybes,我只能提取Just-constructed 值:

我现在正在寻找一个函数,它不仅可以生成一个Justs 列表,还可以Nothing通过遍历一次来生成一个有限列表的 s 计数。它应该有这样的签名:

注意:这个问题是问答式回答的,因此故意不显示任何研究工作!

0 投票
5 回答
1461 浏览

haskell - 最少两个可能

我想获得两个可能值中的最小值,或者如果一个什么都没有,则获得一个非无,或者如果两个输入都没有,则什么都不返回。我可以编写一个简单的函数来做到这一点,但我怀疑有一种方法可以在不编写自定义函数的情况下做到这一点。抱歉,如果这是一个小问题,但有没有比使用这个自定义函数更简单的方法?

0 投票
1 回答
122 浏览

haskell - 了解 Wikipedia 中 Haskell 的 Maybe monad 示例

我想我理解Haskell中的monad概念,即>>=和return的作用。但是,我对这个Wikipedia 示例中应用它们的语法感到有些困惑。

我清楚地了解此功能的意图。我只是对评估的顺序有点困惑。任何人都可以逐行显示函数的哪一部分被评估(假设 mx 和 my 的类型是 Maybe Int 并且 mx = Just x' 和 my = Just y',其中 x' 和 y' 是 Int 值)?

我认为是这样的:

0 投票
2 回答
63 浏览

clojure - Maybe Monad 的本质是您功能的代理吗?

假设:

  • 通过代理,我的意思是像 Spring 中的包装器
  • 通过你的功能,我的意思是简单的(fn [x] (+ x 1))

考虑来自 Konrad Hinsen的以下内容:

现在的好处是,如果值为nil,则m-bind返回nil,并且永远不会调用其余的计算。

我的问题是:Maybe Monad 的本质是您功能的代理吗?

0 投票
2 回答
367 浏览

haskell - 非详尽模式错误

我的函数将 Maybe Int 列表作为其参数。如果元素 = Nothing 它应该打印一个 . 如果元素是 Just Int,它将打印数字。我以为我已经捕获了一个基本案例,但我认为我没有得到正确的。我得到一个非详尽的模式错误。

向正确方向点头将不胜感激!:-)