问题标签 [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 - elemIndex 与 splitAt Haskell 结合使用
我对 Haskell 很陌生,不知道如何解决我遇到的以下问题。
我必须实现以下函数“ca”,它接受一个列表和一个元素,并在输入元素之后删除列表中的所有其他元素:
我不允许更改任何函数类型,并且到目前为止提出了以下代码:
这会产生以下错误:
现在我明白为什么会发生这个错误,但是我不明白如何修复它。任何帮助,将不胜感激。
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
。
非常感谢大家。
haskell - Haskell 中的“fromJust”与“Just =”
Haskell新手在这里。我试图从 Haskell 的库中理解这个例子。diagrams
具体来说,有这样一行:
Just t = <thing>
<thing>
类型在哪里Maybe (Tree a)
我不明白这是在做什么。我知道我们需要从Maybe
. 我用那行代码替换了
t = fromJust <thing>
它的工作原理相同。这两行之间有什么区别,谁能解释第一行在做什么?
haskell - Haskell - 也许/只是递归
我读了一些关于 monad 的帖子和博客,也许,只是,什么都没有……但并没有真正明白:/ 在给定的代码中,我必须实现“latestActivity”-function。在我看来,它应该可以工作,但我不知道如何正确使用“Just”。也许有人能够帮助我。
haskell - Yesod 路由包含一个“可能是一个”参数
我一直在尝试Maybe a
在路线中使用 a 。到目前为止我试过
和
在哪里
但没有太大的成功。
奇怪的是,#Maybe-UserId
使用处理程序可以很好地编译,但是,即使使用下面的新实例Maybe UserId
,它也无法找到匹配项。PathPiece
我缺少什么来创建路由并且不必为我想要使用Maybe
的每一个声明一个类型和实例?Maybe a
编辑:Ǹothing
除了出于某种原因之外,该实例在使用任何其他东西时都可以正常工作。
edit2: "Nothing" -> Nothing
实际上表示PathPiece
解析失败,这不是预期的结果。"Nothing" -> Just Nothing
做正确的事。
haskell - 这个 Bool-producer 到 Maybe-producer 函数是否出现在任何公共库中?
我发现自己想要这个小小的功能,但它似乎不在Data.Maybe
. 是不是在别的地方?
haskell - 使用 Maybe monad 终止相互递归的函数
下面是相互递归函数对的两个示例。第一个示例终止并产生预期的结果。第二个例子类似,除了它使用了 Maybe monad。fun1' 在调用时不会终止。
这是另外两个例子。再一次,第一个示例以预期的结果终止,而第二个示例(使用 Maybe monad)没有终止。
我相信我的情况在语义上与我真实代码中的最后一个示例相似。我有什么办法让它终止?我会被迫放弃 Maybe monad 吗?
更新 这是我最终使用的解决方案;
关键区别在于fun2''''
不再fun1''''
使用绑定运算符进行操作。相反,它明确使用 fromJust (并假设fun1''''
不是Nothing
)。
在我的真实代码fun2
中实际上调用了许多其他函数。这些其他函数不会与 相互递归fun2
,并且可能会返回 Nothing 结果。幸运的是,我仍然可以在 do 表示法中隐式使用绑定运算符来访问其他必需的值。
typescript - 可能是 TypeScript 中的 monad
我正在使用 TypeScript 中的 Maybe monad。我对这些概念的理解不是很好,所以我欢迎任何反馈或建议。有很多 JS 示例,但我正在寻找更强大的类型。
用法类似于:
因为 if/with/return 是保留字,所以我刚刚在末尾添加了 F ..
到目前为止,我有:
haskell - B计划,或者与Maybe的>>=相反的是什么?
让我们使用两个函数:
该函数>>=
将以这样的方式工作,仅当它不是时f >>= g
才会执行g
结果。换句话说,它需要两者和才能成功产生任何结果。f
Nothing
f
g
我正在实现一个解析器,并意识到我的词法分析器会从与此相反的情况中受益。那是:
这意味着尝试f
,如果失败,请尝试g
作为备用计划。使用词法分析器意味着尝试将标记类型与当前输入匹配,如果失败,则尝试匹配另一个标记类型(最终将链接到所有标记类型)。
搜索 Hoogle 并没有产生任何这样的功能,但对我来说,这样的功能似乎在很多地方都很有用!
因此,我的问题是,是否planb
已经存在我应该使用的变体?如果没有,我是否正在做一些非凡的事情,并且有更好的方法来实现我想要的?
PS 我考虑过这样的功能是否对 s 一般有意义,但它对外面的我和其他一些人Monad
来说并没有多大意义。Maybe
string - Haskell 程序在字符串中查找子字符串
我想用这种类型签名写一个 Haskell 函数:
findStr pat str
将尝试在字符串中查找子pat
字符串str
。如果成功,它将返回Just n
,其中n
的位置是pat
within str
。
Example: