问题标签 [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 - 在描述 Delta 的列表上打开一个 Maybe (首先这是一个好主意吗?)
作为 Haskell 的新手,我正在阅读 StackOverflow 最受好评的问题、新问题等,而今天有这样一个:
我想“好吧,我会在不看答案的情况下尝试”。首先,我写道:
那我就可以了minimum neighborsDistance [2,3,6,2,0,1,9,8] => 1
。
但我不太关心边缘情况是如何工作的,所以我想也许我会尝试使用 Maybe。我需要一种方法来调整递归规则以容忍“可能”的值,所以我在 Data.Maybe 上查看了Hoogle并发现fromMaybe
......它看起来像我想要的那样:
但这给了我一个not in scope: fromMaybe
错误。主要问题是“为什么那不起作用?”
另一个问题通常是关于 Haskell 的思维方式,当看到这样的事情时。这是对Maybe的不好使用吗?为什么head
在空列表上调用时会抛出异常而不是返回 Maybe 类型?
我遇到的问题是试图用最小操作来统一距离计算。我假设你可以像这样打破它而不会失去显着的效率(这样它会以最小值或最大值或其他方式组成)?
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 个元素是否有效?
haskell - 结合函子和单子
我是一个haskell新手,不知道如何以富有表现力的方式组合以下功能:
我想要这样的功能:
目前我正在这样做:
好吧,我认为,这真的很丑(好吧,这里只有字母作为名称,但真正的代码也很丑)。我想要的是功能的串联,它更具表现力,例如:
如何将单子函数与函子结合起来,是否有类似的东西or
(比如Optional#orElse
在 Java 8 中?)
scala - 究竟是什么让 Option 成为 Scala 中的 monad?
我知道单子是什么以及如何使用它们。我不明白是什么让我们说,Option
一个单子?
在 Haskell 中,一个 monadMaybe
是一个 monad,因为它是从Monad
class 实例化的(它至少有 2 个必要的函数return
,bind
这使得 classMonad
实际上是一个 monad)。
但在 Scala 中,我们得到了这个:
与单子无关。
如果我在 Scala 中创建自己的类,默认情况下它会是一个 monad 吗?为什么不?
haskell - “无法将类型‘Maybe’与‘IO’匹配预期类型:IO String 实际类型:Maybe String”在 Haskell
我试图围绕 Monads 进行思考,并觉得如果我能解释为什么它不能编译,我会有更好的理解。
我得到的错误是
我意识到问题在于我正在尝试将 aMaybe
与a 匹配IO
,但我不完全确定如何将 Maybe'd 变量转换为 IO。任何帮助将不胜感激!
list - 类似于 catMaybes 的功能,但不计算任何值
我有一个这样的列表:
通过使用catMaybes
,我只能提取Just
-constructed 值:
我现在正在寻找一个函数,它不仅可以生成一个Just
s 列表,还可以Nothing
通过遍历一次来生成一个有限列表的 s 计数。它应该有这样的签名:
注意:这个问题是问答式回答的,因此故意不显示任何研究工作!
haskell - 最少两个可能
我想获得两个可能值中的最小值,或者如果一个什么都没有,则获得一个非无,或者如果两个输入都没有,则什么都不返回。我可以编写一个简单的函数来做到这一点,但我怀疑有一种方法可以在不编写自定义函数的情况下做到这一点。抱歉,如果这是一个小问题,但有没有比使用这个自定义函数更简单的方法?
haskell - 了解 Wikipedia 中 Haskell 的 Maybe monad 示例
我想我理解Haskell中的monad概念,即>>=和return的作用。但是,我对这个Wikipedia 示例中应用它们的语法感到有些困惑。
我清楚地了解此功能的意图。我只是对评估的顺序有点困惑。任何人都可以逐行显示函数的哪一部分被评估(假设 mx 和 my 的类型是 Maybe Int 并且 mx = Just x' 和 my = Just y',其中 x' 和 y' 是 Int 值)?
我认为是这样的:
clojure - Maybe Monad 的本质是您功能的代理吗?
假设:
- 通过代理,我的意思是像 Spring 中的包装器
- 通过你的功能,我的意思是简单的
(fn [x] (+ x 1))
考虑来自 Konrad Hinsen的以下内容:
现在的好处是,如果值为nil
,则m-bind
返回nil
,并且永远不会调用其余的计算。
我的问题是:Maybe Monad 的本质是您功能的代理吗?
haskell - 非详尽模式错误
我的函数将 Maybe Int 列表作为其参数。如果元素 = Nothing 它应该打印一个 . 如果元素是 Just Int,它将打印数字。我以为我已经捕获了一个基本案例,但我认为我没有得到正确的。我得到一个非详尽的模式错误。
向正确方向点头将不胜感激!:-)