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

scala - 史酷比连接 DLists 问题

我有以下结构的 scala scoobi代码(我现在在本地执行):

processSource 是一个对象,如下所示:

现在,我的问题是 getRidOfRight 只返回它应该返回的输出的一部分。为什么?

0 投票
1 回答
622 浏览

scala - 斯卡拉:要么,右,左

我是 Scala 的新手,目前正在尝试使用 play 框架。

这是我写的工作代码:

嗯,这看起来不太好。我们能做得更好吗?我还不能。但我看到了这个 stackoverflow 帖子:https ://stackoverflow.com/a/24085333/3038183看起来很不错:)

现在我想知道如何转换我的代码,所以它看起来像给定的例子。当然我已经尝试过了,但我无法让它编译,也不知道如何处理注释后的代码(“我如何将它转换成更漂亮的代码”)。就我而言,我使用的是 play.api.mvc.Result 而不是上面链接中给出的“失败”。那么我的 Either[play.api.mvc.Result, ?WhatHere?] 应该是什么类型?

此致

编辑:我接受了特拉维斯的回答。非常感谢。

对于任何对这里感兴趣的人来说,我可以编写更好看的代码,这要感谢 Travis:

0 投票
1 回答
118 浏览

scala - 为什么 Scala 库回避动态绑定?

如果我正在编写库,我会习惯性地这样编写 Option:

注意使用多态来map实现。然而,map 的真正实现完全在 Option 类中,它看起来像这样:

我声称我的实现更干净(请参阅其他地方的多态性的优点)并且可能更快。使用类型匹配而Either不是if类似情况,这让我想起了switchC 人在接触 Java 时使用的语句。有趣的是,类似的实现Try遵循我的 OOP 学校。所以我猜在Option. 还有其他原因吗?

0 投票
1 回答
677 浏览

haskell - Haskell 初学者无法匹配预期类型

我需要编写一个程序,将四个值的列表(可以是 I 或 O)解码为[Either Bool Bool]. 我知道我必须使用也许,但我根本无法绕过它。现在我完全绝望了,因为我根本无法解决这个问题。

示例输入和输出可能如下所示: [I,O,O,I] => [Left True, Right False]

这是我拥有的当前代码:

这些是我得到的错误:

现在任何可以帮助我解决这个问题的东西都是受欢迎的。我已经尝试了这一天的大部分时间,但我根本无法解决它。

0 投票
1 回答
153 浏览

scala - Scala - 期货和二选一

这个线程让我知道如何构建我的代码: Scala-way to handle conditions in for-comprehensions?

有问题的部分:

这是我不明白的行:

userRes.withFailure (UserNotFound).right映射到userDao.authenticate(user)。这将创建一个新的 Either,其右侧有一个 Future,对吗?

怎么能

属于它的类型。我认为应该有另一个未来,而不是 JsResult。谁能给我解释一下?

编辑:由于 cmbaxter 和 Arne Claassen 证实了这一点,新的问题是:我应该如何编写这段代码,这样它看起来并不难看,而是干净和结构化?

0 投票
2 回答
311 浏览

functional-programming - Scala的惯用方法,根据列表内容将一个列表放入左侧或右侧

我有一份清单

结果,我想要 a Rightif 列表中的所有内容都是 a Rightelse 我想要 a Left。这听起来像列表应该有偏见(例如使用Try代替),但让我们假设它不是或不应该是。

结果的内容RightorLeft将始终相同(例如,字符串,见吹) - 只有 Container 应该不同。例如,对于上面的列表,我们希望从该列表中创建一个字符串,因此结果应该是Leftlike Left("Right(5) -> Left(abc) -> Right(42)")。如果我们有另一个Right(12)而不是Left("abc")它应该是Right("Right(5) -> Right(12) -> Right(42)")

我可以手动检查列表中是否至少有一个Left,并使用 if 进行分支以创建 aLeft或 aRight作为结果,但我想知道:是否有更类似于 Scala 的方式来做到这一点?

0 投票
1 回答
154 浏览

scala - Monad 转换器 - Scalaz - List[Future[String\/String]] 到 Future[String\/String]

我想知道如何将 a 转换List[Future[String\/String]]Future[String\/String].

其实我只是想申请list的每个元素EitherT.apply

我想要的看起来像这样:

在此示例中,我想将函数fun和函数的参数列表(包含 n 个元素)设置为输入fun(此处为 : List(arg1, arg2, arg3))。

但我不知道如何使用期货进行管理。是否可以保持异步?

0 投票
1 回答
397 浏览

exception-handling - 在 Clojure 中处理纯错误?

我正在开发一个使用大爆炸式编程风格的游戏,其中将整个状态定义为单个数据结构,并通过交换单个原子来管理状态更改。

在游戏中,我们不能信任客户端发送的数据,因此服务器必须预测某些动作无效的可能性并加以防范。当一个人编写一个交换世界状态的函数时,它可以从纯粹的开始;但是,必须考虑无效请求的可能性。我相信要在惯用的 Clojure 中实现不愉快的路径,只需抛出异常。所以现在可能是纯函数被副作用异常感染了。也许就是它必须的样子。

我的目标是将副作用推迟到最后一刻。我几乎没有涉足 Haskell 领域,但我知道 Either monad 的概念。当一个人考虑幸福和不幸的道路时,就会明白总有这两种可能性。这让我认为这swap!本身是不够的,因为它忽略了不愉快的道路。这是这个想法的精神:

Clojure 社区是否采用了更多功能性的方法来处理异常?

0 投票
0 回答
811 浏览

scala - 如何在 Scala 中组合非此即彼/析取的未来

假设我要编写以下函数:

由于 ,该函数mayFail很慢,slowAndMayFail所以我希望它返回.Error \/ Int

直接的方法可能是让slowAndMayFailreturn scalaz.Future[Error\/Int]],让所有其他函数(mayFail1mayFail2等)Future[Error\/Int]]也返回,然后将EitherT它们相加组合在一起。

是否有意义 ?有更简单/更简单的解决方案吗?

我知道这scalaz提供了任务,但我现在坚持Future

0 投票
1 回答
1855 浏览

scala - 为什么在“Scala函数式编程”一书的“无异常处理错误”一章中没有提到`scala.util.Try`?

在“Scala 中的函数式编程”一书的“无异常处理错误”一章中,作者给出:

  1. 从函数体抛出异常的问题
  2. 如果Option我们不关心实际的异常,请使用
  3. Either如果我们关心实际的异常,请使用

scala.util.Try并未提及。从我的角度来看,我认为Try在我们关心实际异常时非常合适,为什么不提呢?有什么我错过的原因吗?