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

haskell - elemIndex 与 splitAt Haskell 结合使用

我对 Haskell 很陌生,不知道如何解决我遇到的以下问题。

我必须实现以下函数“ca”,它接受一个列表和一个元素,并在输入元素之后删除列表中的所有其他元素:

我不允许更改任何函数类型,并且到目前为止提出了以下代码:

这会产生以下错误:

现在我明白为什么会发生这个错误,但是我不明白如何修复它。任何帮助,将不胜感激。

0 投票
2 回答
83 浏览

haskell - 计算查询,关于使用 Maybe monad 进行评估

我目前正在学习使用 monad 进行计算的基础知识。我一直在检查代码片段,我相信我知道它们的作用,但我可能需要澄清一下。它涉及 Maybe monad 的实例。

有一些函数试图计算尾部,还有一个函数试图计算列表的头部。下面的函数在使用列表调用时会产生等效的结果[1,2,3,4,5] = Just 3

该函数func3似乎“跳过”了一个额外的计算步骤func2。我是否正确地说,func3将计算结果输入到下面的尾部计算中,然后计算它的尾部,然后将该计算的结果传递给下面计算头部的函数?

如果是这样,那么为什么我们需要func2忽略初始计算的结果?在我看来,它好像在运行myTail xs计算,然后将其值传递给函数,该函数使用初始列表而不是尾部计算的结果。

因此,这只是说明每一个的多余步骤a, b, c吗?我假设这func3也相当于func1,只有最顶层的计算是a

非常感谢大家。

0 投票
3 回答
2747 浏览

haskell - Haskell 中的“fromJust”与“Just =”

Haskell新手在这里。我试图从 Haskell 的库中理解这个例子。diagrams具体来说,有这样一行:

Just t = <thing><thing>类型在哪里Maybe (Tree a)

我不明白这是在做什么。我知道我们需要从Maybe. 我用那行代码替换了

t = fromJust <thing>

它的工作原理相同。这两行之间有什么区别,谁能解释第一行在做什么?

0 投票
2 回答
712 浏览

haskell - Haskell - 也许/只是递归

我读了一些关于 monad 的帖子和博客,也许,只是,什么都没有……但并没有真正明白:/ 在给定的代码中,我必须实现“latestActivity”-function。在我看来,它应该可以工作,但我不知道如何正确使用“Just”。也许有人能够帮助我。

0 投票
2 回答
484 浏览

haskell - Yesod 路由包含一个“可能是一个”参数

我一直在尝试Maybe a在路线中使用 a 。到目前为止我试过

在哪里

但没有太大的成功。

奇怪的是,#Maybe-UserId使用处理程序可以很好地编译,但是,即使使用下面的新实例Maybe UserId,它也无法找到匹配项。PathPiece

我缺少什么来创建路由并且不必为我想要使用Maybe的每一个声明一个类型和实例?Maybe a

编辑:Ǹothing除了出于某种原因之外,该实例在使用任何其他东西时都可以正常工作。

edit2: "Nothing" -> Nothing实际上表示PathPiece解析失败,这不是预期的结果。"Nothing" -> Just Nothing做正确的事。

0 投票
2 回答
83 浏览

haskell - 这个 Bool-producer 到 Maybe-producer 函数是否出现在任何公共库中?

我发现自己想要这个小小的功能,但它似乎不在Data.Maybe. 是不是在别的地方?

0 投票
4 回答
262 浏览

haskell - 使用 Maybe monad 终止相互递归的函数

下面是相互递归函数对的两个示例。第一个示例终止并产生预期的结果。第二个例子类似,除了它使用了 Maybe monad。fun1' 在调用时不会终止。

这是另外两个例子。再一次,第一个示例以预期的结果终止,而第二个示例(使用 Maybe monad)没有终止。

我相信我的情况在语义上与我真实代码中的最后一个示例相似。我有什么办法让它终止?我会被迫放弃 Maybe monad 吗?

更新 这是我最终使用的解决方案;

关键区别在于fun2''''不再fun1''''使用绑定运算符进行操作。相反,它明确使用 fromJust (并假设fun1''''不是Nothing)。

在我的真实代码fun2中实际上调用了许多其他函数。这些其他函数不会与 相互递归fun2,并且可能会返回 Nothing 结果。幸运的是,我仍然可以在 do 表示法中隐式使用绑定运算符来访问其他必需的值。

0 投票
2 回答
5841 浏览

typescript - 可能是 TypeScript 中的 monad

我正在使用 TypeScript 中的 Maybe monad。我对这些概念的理解不是很好,所以我欢迎任何反馈或建议。有很多 JS 示例,但我正在寻找更强大的类型。

用法类似于:

因为 if/with/return 是保留字,所以我刚刚在末尾添加了 F ..

到目前为止,我有:

0 投票
2 回答
874 浏览

haskell - B计划,或者与Maybe的>>=相反的是什么?

让我们使用两个函数:

该函数>>=将以这样的方式工作,仅当它不是时f >>= g才会执行g结果。换句话说,它需要两者和才能成功产生任何结果。fNothingfg

我正在实现一个解析器,并意识到我的词法分析器会从与此相反的情况中受益。那是:

这意味着尝试f,如果失败,请尝试g作为备用计划。使用词法分析器意味着尝试将标记类型与当前输入匹配,如果失败,则尝试匹配另一个标记类型(最终将链接到所有标记类型)。

搜索 Hoogle 并没有产生任何这样的功能,但对我来说,这样的功能似乎在很多地方都很有用!

因此,我的问题是,是否planb已经存在我应该使用的变体?如果没有,我是否正在做一些非凡的事情,并且有更好的方法来实现我想要的?


PS 我考虑过这样的功能是否对 s 一般有意义,但它对外面的我和其他一些人Monad来说并没有多大意义。Maybe

0 投票
3 回答
1154 浏览

string - Haskell 程序在字符串中查找子字符串

我想用这种类型签名写一个 Haskell 函数:

findStr pat str将尝试在字符串中查找子pat字符串str。如果成功,它将返回Just n,其中n的位置是patwithin str

Example: