问题标签 [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 回答
296 浏览

scala - 如何简洁地替换选项内的值?

我想替换一个Option非空的值。我可以使用map(_ => newValue)类似 in的常量函数来做到这一点

有没有更简洁的方法,比如 Haskell 的<$in 42 <$ Just "text"

0 投票
3 回答
290 浏览

haskell - 如何使 Maybe 的这种替代定义起作用?

我刚刚发明了以下替代定义Maybe

问题是我无法添加以下实例声明

错误信息是:

有什么办法可以解决吗?

0 投票
3 回答
571 浏览

haskell - 在 Haskell 中 fromJust 的理由

我正在尝试学习 Haskell,所以我在 Haskell 中尝试了 Project Euler 的问题 26: http ://projecteuler.net/problem=26

我对这个问题的解决方案是这样的:

我意识到这不是最有效的算法,但认为它是天真的 O(n^3) (其中 n = 1000)不是这样的问题。不过,我担心的是,根据我对 monad 的理解,它们的主要属性之一是它们在某种意义上“标记”了任何使用过 monad 的东西。函数“fromJust”似乎直接与它背道而驰。它为什么存在?另外,假设它的存在是合理的,我在上面的代码中使用它是好的做法吗?

0 投票
2 回答
253 浏览

haskell - 如何避免在 Haskell 中检查空值?

我试图掌握 Haskell 程序如何避免测试“空值”。我正在努力摆脱这个程序中的案例表达:

我非常粗略的理解是我应该使用 monad 转换器,这样我就可以mappend在 IO monad 中使用 single on Maybe 值,并且“do”语法应该能够支持它。我怎样才能做到这一点?

0 投票
2 回答
413 浏览

haskell - 将函数转换为 Maybe 类型

我正在尝试将使用 foldr 函数的最大函数转换为也包含可能类型的函数。原来是:

它适用于集合,但不适用于空集合。我想将其转换为使用可能的类型。

我的思考过程是:

当我给它一个空集时,它编译没有错误并且可以工作。但是,当我给它一个带有数字的集合时,它不再起作用了!有人可以指出我如何获得它的功能并从可能的列表中获得最大的正确方向吗?

我真的很想在我的解决方案中使用 foldr 函数......

我现在尝试过:

但它不会编译:

0 投票
2 回答
147 浏览

haskell - 如何将“Real World Haskell”列表数据类型转换为使用 Maybe?

我一直在研究“Real World Haskell”,并且一直在研究如何使用 Maybe。我在第 3 章中编写了这种数据类型和相应的函数。本书建议尝试将其转换为使用 Maybe 并摆脱 Nil 类型。我一直在玩这个,但我不知道该怎么做。我试过在不同的地方添加可能,但我真的只是在猜测而不是知道如何去做。

0 投票
3 回答
3003 浏览

haskell - 简化嵌套的 Maybe 模式匹配

我的代码中有以下构造:

我没有看到一个明显的方法来简化这个而不是使用嵌套maybe函数,这不会让整个事情看起来更好。是否有任何聪明的——但仍然可以理解的——技巧可以帮助使这个结构更加“优雅”?

0 投票
3 回答
1329 浏览

haskell - How to use Data.Map.lookup in the context of an Either monad?

I'm trying to use Data.Map to map strings to functions. The issue I'm having is that the main error handling in my program uses an Either monad, and Map.lookup will return Maybe ([SomeVal] -> Either ValError SomeVal). How can I make Map.lookup play nicely with the Either monad in this case?

0 投票
0 回答
82 浏览

scala - 使用 Option/Maybe 表示异步初始化的未初始化变量

在我正在研究的代码库中有一个模式,var x: Option[A] = None它用于启动未初始化的变量,并在程序启动后的某个时间点填充,或者使用异步加载的数据,或者响应某种发生的第一个事件.

在此之后,变量始终是类型Some- 该None部分仅在程序开始时使用。

虽然这个模型很好地模拟了正在发生的事情(我看到的最后一个事件是None程序启动时,并且永远都是这样Some(event)),但我觉得每次与这些变量之一交互时我都在为使用选项付出代价,尽管我实际上只使用过一次。

似乎我不清楚 - 内部的值Some可以改变,因此 var. 我不能只使用未来来等待初始化并从那里开始。

有没有更简洁的方法来表示这种延迟初始化?

0 投票
3 回答
2268 浏览

haskell - 如果两个参数都是 Just,则 Haskell 函数返回 Just 值对,否则返回 Nothing

定义一个函数

仅当两个参数都是 时才会产生Just结果Just,并且Nothing如果任一参数都是Nothing

我想出了:

我不确定这是否是正确的写作方式。这有什么问题还是这是定义此功能的方式?

另外我想我可能想要更好地解释这个函数实际上可以做什么,所以如果我pairMaybe用两个参数调用,它们可以是什么参数?当然它们必须是 type Maybe,但有什么好的例子呢?