问题标签 [either]

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 回答
13093 浏览

scala - 如何仅从 scala Either 映射左值?

考虑一个代码:

为什么是 rSerializable with Product with Either[String, TwoCaseClass]类型而不是Either[String, TwoCaseClass]

如何仅映射左值?

0 投票
3 回答
622 浏览

haskell - 如何将 (Either String (a -> b)) 映射到 (Either String [(a -> b)])

我尝试通过自己的练习找到解决方案,并满足以下要求:

  • 我们需要根据给定的序列移动对象。
  • 序列由动作组成。

以下是可能的操作:F、L、R

  • F:前进
  • L : 向左旋转 90°
  • R : 向右旋转 90°

一个序列然后由一个字符串表示,如下所示:

"FFLRLFF"

我想解析上述序列(并处理错误),然后将每个操作绑定到一个函数,如下所示:

现在我想要的是具有以下签名的东西:

我想通过使用多次parseAction函数来解析一个完整的序列,并在该函数返回 Left 时失败。我被困在如何实现这个功能上。

你有什么想法 ?

0 投票
0 回答
335 浏览

haskell - 这两个函数如何工作并在 Haskell 中正确使用?

我目前正在尝试通过学习 Haskell 数据分析来学习 Haskell (虽然之前我读过一些其他的东西,比如 Learn You a Haskell...)。有一个列表可以解析和修改 csv 数据,它不像本书建议的那样工作,即。它通过一个错误。不幸的是,我还不够好,无法更正列表。我以某种方式得到什么不起作用,但不知道正确的版本会是什么样子。我也没有真正找到使用该either函数来查看是否可以从中派生正确版本的富有表现力的示例

将其加载到 ghci 时收到的错误消息是:

有没有人这么好心,可以向我解释我必须如何修改清单以使其正常工作,以及为什么它不像书中建议的那样工作?

0 投票
1 回答
85 浏览

haskell - 是否可以从提示中的错误评估中恢复?

我正在尝试使用hintpackage fromhackage创建一个简单的环境,用户可以在其中发布代码行进行评估(如在 ghci 中)。我希望某些输入行是错误的(eval会以错误结束会话)。如何创建一个健壮的会话来忽略错误输入(或者更好:它报告错误但可以接受其他输入)并保持先前​​一致的状态?

另外,我想以do风格使用它,即let a = 3作为独立输入行是有意义的。


澄清一下:我对单个eval. 我想做的是,即使在某些步骤失败后也允许继续评估。我还想逐步扩展一个单子链(就像ghci我猜的那样)。

换句话说:我想要这样的东西,除了我要评估3并且不要停留在undefined错误上。

更具体地说,我希望这样的事情成为可能:

我不希望它直接工作,这只是为了展示这个想法。我基本上想建立一些上下文(就像你在 ghci 中所做的那样),并且只有在没有失败的情况下,对上下文的每次添加都会修改它,每次尝试修改上下文后都可以记录或显式检索失败。

0 投票
2 回答
4907 浏览

scala - Scala Future 的优雅处理[Either]]

我有一个形状是这样的类型:

我知道我可以对此进行模式匹配并获得 Right 或 Left 类型,但问题是我必须嵌套我的模式匹配逻辑。我正在寻找更优雅的处理方式?有什么建议么?

0 投票
1 回答
97 浏览

scala - 在 Scala 中处理 Future[Either] 类型

我有点努力让这个结构化。这是我正在尝试做的事情:

我期望checkResultAndFetchUser返回 a Future[Either[ServiceError, User]],但我看到以下编译器失败:

userByEmail(encryptedEmail)方法给了我一个Future[Either[ServiceError, User]]我期望的结果,但是为什么以及问题出在哪里?

编辑:我找到了解决方案:

可以吗?我的意思是,实现是安全的,因为我使用局部变量来返回一个Future

0 投票
2 回答
274 浏览

javascript - 使用 Either 并立即返回错误

我有一个函数,它返回一个 Either 实例,其中左侧表示异常/错误,而第二侧存储返回值。

如果 Either 实例已被实例化到 Error 分支,我想立即返回。如果该实例已被 Right 实例化,我想将其包装在 Maybe 中并继续(因为它作为 Maybe 进入函数,并且仅在它为 Nothing 时才被查找)。

这是根据我的测试用例工作的:

  1. isNothing 传入 :: 查找错误
  2. isNothing 传入 :: 查找成功
  3. isJust(22) 被传入(查找不执行)

代码感觉不错,但我不怀疑我可能会错过 Folktale data.either 库的一些细节。

我将 ES6(节点 4.1)与 Folktale 结合起来:data.either 和 data.maybe。我的目标是真正提高我对如何以这种风格正确写作的理解


更新问题有点复杂我背靠背独立查找,我觉得可以链接在一起:

它的背靠背事件使代码超级难看......

0 投票
3 回答
2873 浏览

python - 根据概率将变量设置为不同的值

我有一个变量 x,我想将其设置为值 1 或 2,x=1 的概率为 60%,x=2 的概率为 40%。

我在课堂上这样做,所以每次单击按钮时 x 都应该重新生成,然后我会绘制它,但我不确定如何使用特定概率来设置它。我知道我可以随意做,但这不是我想要的。

有谁知道如何做到这一点?

0 投票
2 回答
196 浏览

scala - 如何在scalaz`\/符号中累积Throwable

假设我有两个计算结果列表

我有计算最终结果的函数,例如

我需要计算每个结果的所有结果,a并且如果有的话b还要累积。Throwable有没有像 Applicative style 这样的优雅方式<*>

UPDT:结果必须如下

我来到的最好的解决方案是

然后

但在那种情况下,我有一些额外的结果。结果列表有类型List[ List[Throwable] \/ C]

0 投票
4 回答
601 浏览

f# - F# Monad 多参数

我试图围绕单子以及如何在现实世界的示例中使用它们。我给自己设定的第一个“任务”是编写一个“异常单子”,当然(此时)它只不过是为了满足我的目的而扭曲的“任一单子”。

我的代码如下所示:

我的问题如下:divide 函数现在需要一个元组。我可以或应该做些什么来使绑定和映射函数对于具有多个参数的函数的行为正确?

编辑 30-12-2015:@Mark Seemann 的答案和评论都有助于找到问题的答案。@Mikhail 提供了解决方案的实现。柯里化是解决问题的正确方法。计算表达式不是一种解决方案,而是一种语法抽象,它确实有效,但一旦您将异步和其他模式添加到问题中,它就会变得复杂。“简单”的组合似乎是最简单和“最真实”的解决方案。