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

haskell - Haskell:预期的懒惰,为什么要评估这个?

我有一个sideH运行风险的函数Prelude.head []。因此,我使用 Maybe 编写了它,以避免这种情况:

以上工作完全符合预期,没有错误。现在,在调用的函数sideH(不是 do 构造)中,我必须处理sideH返回的情况Nothing

如果我尝试评估newH1Posor newH2Poswhen newH = Nothing,它将失败,因为fromJust Nothing是一个错误。但是,我希望这永远不会发生。我希望callerFunc评估newHs,要么是Just something要么Nothing。如果是Nothing,那么callerFunc将进入下一步,而无需评估newH1Posor newH2Pos。情况似乎并非如此。*** Exception: Maybe.fromJust: Nothing我在我期望newHs返回的地方得到一个错误Nothing

我被要求提供更多代码。我试图提出一个重现错误的最小情况,但与此同时,这里是完整的有问题的callerFunc代码。

我知道这是一个痛苦的代码转储。我正在尝试减少它。

0 投票
3 回答
2242 浏览

haskell - Haskell Int 和 Maybe Int

本质上,我有一个使用 Maybe Int 来显示数独问题的函数。Sudoku 的解决方案仅包含 Int,显示网格的代码几乎相同,除了用于问题的 Maybe Int 和用于解决方案的 Int。

是否可以将 Int 值用于需要 Maybe Int 的函数,如果可以,如何?

编辑:只是可行,有没有办法将 Int 的列表转换为 Int 的列表?

0 投票
1 回答
2344 浏览

list - Maybe Int 的 Haskell 列表,将每个元素转换为 char,然后是 String

需要帮助解决我的问题。我知道实现我想要的需要采取的步骤(排序),但我真的不知道如何去做。

例如

假设我有一个列表Maybe Int-[[Just 2, Nothing, Just 3],[Just 6,Just 3, Just 3],[Nothing,Nothing, Just 1]]

我需要创建一个函数。

1) 获取Maybe Ints列表

2) 获取第一个列表 ( head?)

3)通过列表中的每个元素递归 -(x:xs)

4) 转换Maybe IntChar-fromEnum

5)返回String包含所有字符的完整 -(++) = [char] / String

6) 移动到下一个 List 直到 list =[]

所以最终结果将是这样打印在单独的行上:

我试图尽可能地解释它,任何提示/帮助/信息来源将不胜感激。

0 投票
4 回答
1487 浏览

haskell - 对 Haskell “Nothing” 价值的困惑

我最近开始潜入 Haskell。它很有趣,但它的定义Nothing让我感到困惑,并没有陷入困境。关于 GHCI

Nothing应该Just Nothing,为什么Maybe a

0 投票
1 回答
911 浏览

haskell - 如何摆脱多余的可能

我有一个可能会失败的函数,所以它返回的值需要包装在 Maybe 中。它使用了另一个也可能失败的函数,它也包含在 Maybe 中。问题是,为了让类型在中间计算中起作用,我必须“过早地”提升一个函数以在 Maybe 上下文中工作。这导致我得到一个类型 Maybe [Maybe Integer],而我想要的是 Maybe [Integer]。有问题的函数是 exptDecipherString 函数,强制“过早”提升的函数是 modulesInverse 函数。

0 投票
3 回答
255 浏览

objective-c - 在不使用指针的情况下在 Objective C 中表示可能类型的最佳方法,(指向指针的指针不是对象?)

在不使用指针的情况下,在 Objective C 中表示可能类型的最佳方法是什么?我不能简单地使用指向对象的指针,因为指向对象的指针不是对象,我需要它是对象。

我知道做到这一点的一种方法是为我拥有的每个对象创建一个自定义类,这将产生诸如 MaybeEmployee、MaybeOrderStatus 之类的类以及更多自定义类。这会起作用,但它看起来很笨拙,根本不是一个很好的解决方案。

第二种方法,简单地使用一个 Maybe 类似乎也是错误的。缺乏类型安全是很糟糕的。

0 投票
1 回答
522 浏览

haskell - 也许 monad 绑定函数优先级

教程中,我发现了以下代码段:

我无法弄清楚该>>=功能应该如何工作。起初它接受一个Maybe a值作为它的第一个参数:deposit 100 account >>=

之后,它似乎将a -> Maybe a其作为第一个参数:withdraw 200 >>=编译器如何批准?不应该>>=总是Maybe a作为它的第一个参数吗?

一个可能的解决方案是,如果>>=函数的优先级按以下方式工作:((a >>= b) >>= c) >>= d

但据我所知,情况恰恰相反:a >>= (b >>= (c >>= d))

0 投票
5 回答
1996 浏览

list - 在 Haskell 中定义为 Maybe 的列表?为什么不?

例如,除了错误处理之外,您不会看到Maybe List,因为列表有点Maybe自己:它们有自己的 " Nothing":[]和自己的 " Just": (:)。我使用 Maybe 和函数编写了一个列表类型来转换标准列表和“实验”列表。toStd . toExp == id.

作为减少重复、概括的尝试,您如何看待它?

树也可以使用这些列表来定义:

不过,我还没有测试过最后一段代码。

0 投票
3 回答
3362 浏览

haskell - 什么是 Just in Haskell,为什么没有它这个函数就不能工作?

我有以下函数,其作用类似于索引运算符:

现在,最初我没有使用就写了这个Just(我仍然不明白谷歌搜索后它是什么):

对我来说,上述功能非常有意义。因为这里我有一个函数,它接受一个“通用类型”列表,a一个Int是索引并返回Maybe类型的值a或引发运行时异常。但是,我不明白 GHCi 告诉我的地方:

现在,为什么 GHCi 会与 type 的类型混淆,l为什么它需要一个 type 的列表Maybe a?最后,如何Just解决问题?

0 投票
2 回答
4871 浏览

c++ - 在 C++11 中实现 boost::optional

我正在尝试使用 c++11 功能实现 boost::optional 之类的数据结构。这是我到目前为止所拥有的:

我利用不受限制的联合功能为可以就地存储的可选值创建正确对齐的空间,而不是动态分配空间。事情大部分都有效,除非我想创建一个带有引用的可能<>。例如maybe<int&>导致 g++ 4.7 抱怨:

我应该怎么做才能使可能的类存储引用?也欢迎对课程提出任何其他改进/建议。