问题标签 [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 投票
1 回答
500 浏览

haskell - parse error in maybe divide (Haskell)

Just a simple question that i cannot solve I was trying to get maybe_divide by the following code as assignment required, however terminal give me an error message

test2.hs:1:112: Parse error in pattern: (Just x)

Who likes to tell me what is wrong with it? Thanks

0 投票
3 回答
257 浏览

haskell - 两个相同的代码,但终端中的错误消息非常不同

这是我的第一个代码

代码 1 的错误消息如下所示:


这是我的朋友 Bryan Olivier 编写的第二个代码:

但是,这次的错误信息有所不同:

0 投票
3 回答
5339 浏览

list - Haskell-在列表中查找元素并返回其位置

所以我需要制作一个描述为的函数

它接受一个整数并在斐波那契数列中查找它(如下面的函数所述)

并返回数字示例的索引:

invFib 0~>Just 0

invFib 1~>Just 1Just 2

map invFib [54, 55, 56]~>[Nothing,Just 10,Nothing]

invFib (fibs !! 99)~>Just 99

我尝试制作一个接受整数列表并吐出索引的函数,但它一直失败。有什么想法吗?

这是我尝试过的功能-

编辑:该函数冻结不在斐波那契数列中的数字,当输入 1 时也只显示 1 个值

0 投票
3 回答
162 浏览

scala - 在 Scala 中处理 Option 元素的规范方法

例如,我想将一个函数f: (Int,Int) => Int应用于 type 的两个元素Option[Int]。我的想法类似于 (a,b).zipped.map(f),但这会产生一个列表,我想得到一个新的 Option[Int] 作为结果。

如果没有显式分支,如何做到这一点?

0 投票
4 回答
4050 浏览

haskell - Haskell - 也许算术

我被要求实现一个使用以下配置文件的功能:

并以下列方式响应:

我已经写了以下内容,但它不会编译。你们有什么建议吗?

0 投票
2 回答
8231 浏览

c# - 也许是类和可选参数

我在 c# 中有一个 Maybe / Option 类的实现。基本实现是

有一堆我在这里没有包括的扩展方法。这一切都很好。然而,我想实现的标准模式如下,使用 Maybe 来实现可选参数默认值,如 F#

所以我可以

或者

如果 None 可用,则 Else 提供一个值。然而,这在理论上都很好,但是 C# 可选参数必须是编译时常量,这完全破坏了这种模式。

任何人都可以提出一个修复方案来保持模式的意图而不在这里引入可空值或空值吗?

无论如何我可以创建一个编译时间常量来代表 None ,这将与我上面的 Maybe 实现一起工作?

0 投票
1 回答
255 浏览

haskell - Monad 转换器 monad 重复

我是 monad 转换器的新手,所以很抱歉这个简单的问题。我有价值val :: MaybeT IO String和功能fn :: String -> IO [String]。所以绑定后,我有val >>= liftM fn :: MaybeT IO (IO [String]). 如何删除重复的 IO monad 并获得类型的结果MaybeT IO [String]

0 投票
2 回答
658 浏览

haskell - 使用 Maybe 和 Writer 过滤列表并跟踪过滤器命中

我正在使用返回 Maybe 元素的链式函数来过滤列表。这部分工作正常。

但是我也想计算不同函数捕获元素的时间。我现在正在使用带有地图的 Writer 来收集点击量。我尝试将其包装在 MaybeT 中,但这会导致整个过滤器在出现不需要的元素并返回和空列表的情况下失败。

我只是不知道如何让它做我想做的事。我猜我正在寻找的类型签名是[Int] -> CountWriter [Int],但是当输入是[1..6]

0 投票
2 回答
226 浏览

python - 如果一个值与 None 不同,如何映射它?

当且仅当它不是时,是否有一种简洁的方法如何映射一个值None?就像是

更新:我正在寻找一种方法来处理值,如果它们与 不同None,否则保持None,语义与 my 完全一样fmapMaybe

在上面的代码中,f是一个任意的 1 参数函数,并且v是一个值,f如果它不同于None. v对什么或是没有进一步的限制f

举一个具体的例子:我想从字典中获取一个字符串值并将其转换为整数,如果找到的话。所以结果应该是一个整数,或者None。使用上面的函数,我会写:

有没有更短更简洁的方法?

正如 Don Stewart 评论的那样,这类似于Haskellfmap中的Maybe函子或Scala 中的mapover Option。(如果我们认为它f也可以返回None,它将类似于>>=Haskell 和flatMapScala 中的 monadic。)

0 投票
2 回答
146 浏览

python - 如果值为无,如何提供默认值?

是否有运算符或库函数这样v ??? d

  • 评估为vifv不同于None且不评估d, 或
  • 计算为difv等于None

(其中???我表示我正在寻找的运营商)。

运算符or几乎是我想要的,但它的计算结果为默认值 if vis False。仅当参数为 时,我才需要默认值None,因此False ??? d计算结果为False


更新:为了澄清,在我的情况下v可以是一个复杂的表达式,比如computeSomethingLong() ??? d. 所以我不能使用

我必须做类似的事情

相比之下,感觉很尴尬computeSomethingLong() or d


更新:我得到的最接近的是定义我自己的函数:

但缺点是deflt总是被评估!我希望它在实际需要时进行评估。特别是,我希望在

评估第一个计算;如果结果不是None,则返回。否则,第二个将被评估(并且仅在这种情况下),它将是表达式的结果。