问题标签 [for-comprehension]

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 投票
2 回答
3776 浏览

scala - Scala:ExecutionContext 以供将来理解

当我创建一个future或应用诸如onSuccessand之类的方法map时,我可以为它们指定 ExecutionContext。

例如,

但是,如果我使用对未来的理解,我如何为该yield部分指定 ExecutionContext?

而且,如果未指定,什么 ExecutionContext 会在 yield 中运行代码?


编辑

好的。感谢答案,我发现了一些东西。
如果我不定义或导入隐式ExecutionContext(如Implicits.global),则 for-comprehension 不会编译。这意味着,理解使用隐式 ExecutionContext。

那么,如何在没有隐式ExecutionContext的情况下使用for-comprehension,即如何指定?

0 投票
0 回答
178 浏览

generator - 如何使用过滤链接python生成器表达式?

我正在尝试链接生成器,以便可以将大型 CSV 文件作为行流处理,而不是批量执行每个单个操作。

这样,我可以延迟每一步的每次迭代,避免将整个数据集加载到内存中。

生成器表达式工作正常,除非我尝试使用 if 语句过滤输出。

这有效:一次只消耗一个迭代

next()然后我可以通过调用生成的可迭代对象一次得到一行。但是,如果我这样做

然后,迭代器继续运行直到耗尽。为什么?解决方法是什么?

0 投票
1 回答
241 浏览

scala - Scala 附加到地图迭代

我正在尝试将序列的每个对象的值映射到列表的两个键的映射,但是在获取正确的语法时遇到了一些问题。

我想做的是遍历这个序列,将每辆车的名称(car.name)和年份(car.year)作为两个键映射到地图上,并将汽车附加到与这个名称和年份相关的汽车列表中作为 Map 的值。我也试图在这里不使用可变变量。

0 投票
2 回答
411 浏览

scala - Scala异步/回调代码重写

应该通过检查用户的简单代码,用户处于活动状态,然后更新上次登录日期时间。

如何将其重写为更少的 flatMap/map 意大利面条?

另一种解决方案

}

0 投票
1 回答
74 浏览

scala - 将列表映射到另一个特征的地图的最佳方法

可以说我有一个List[TraitA]对象。TraitA提供了一个属性propX : String。我知道这个列表的一个子集也是 的一个实例TraitB,但是它不提供属性propX

例如:

列表中的一些实例只是extend TraitA,而另一些extend TraitA with TraitB。我只需要提取那些具有TraitB但我需要保留属性propX的实例TraitApropX只能是几个值,我需要的是根据这个值Map对实例进行分组。TraitB

所以我需要TraitBList[TraitA]实例中提取这个实​​例子集,因为其中一些是TraitA with TraitB,并创建一个Map[String, List[TraitB]],其中密钥propX来自TraitA

我一直在摆弄for理解,但由于某种原因,我不能yielda List[(String, TraitB)]of tuples (那时我可以groupBy _.1),可能是因为第一个生成器是 type TraitA

我试过这个,但它抱怨预期的类型是List[(String, TraitA)]

另一方面,如果我filter通过模式匹配列出我在过滤功能中TraitB失去可见性。propX

实现这一目标的最佳方法是什么?

0 投票
2 回答
120 浏览

racket - Racket 中的 for/list 与自定义 for/bytes

我在玩球拍,错过了一个字节串理解。当我for/fold/derived在文档中找到示例时,我决定推出自己的字节字符串理解宏,就像任何初学者一样:

我有几个相关的问题:

  1. 无论如何,这是球拍方式吗?
  2. 宏好吗?基本上,我将for/fold/derived文档中的示例与宏扩展相结合for/vector
  3. 有没有明显的性能优化?

可悲的是,它并没有真正比(list->bytes (for/list ...这个微基准更快:

给出 3212 毫秒与 3690 毫秒。对于远小于 50000 的尺寸,我for/bytes会输,对于大于 50000 的尺寸,我会赢。

0 投票
1 回答
289 浏览

scala - 如何“脱糖”这个 Scala 语句?

Scala 中的 LINQ 样式查询json4s如下所示:

我不明白(2)是如何工作的。你会如何去糖这个 -for声明?

0 投票
1 回答
234 浏览

scala - 如何在 Scala 中编写通用组合

我在 Scala 中有一个简单的组合函数:

对于给定的

List(1, 2), List(3, 4)

返回

List( List( (1,1), (2,3) ), List( (1,1), (2,4) ), List( (1,2), (2,3) ), List( (1,2), (2,4) ) )

所以我想要一个组合(元组)列表,其中第一个元素是索引,第二个是来自域的值。我希望这种组合是唯一的,这样就不会与两个相同索引的元组组合。

不幸的是,我不知道要合并多少个列表。
如何编写更通用的函数?

0 投票
1 回答
168 浏览

javascript - Coffeescript 数组理解跳过值

我有一个要移植到咖啡脚本的 RPC 库。它必须做的一件事是重新排序函数调用参数以确保它们的顺序正确。为此,我编写了一个“数组理解”,如下所示:

所有远程过程都使用“cb”参数通过回调提供结果。这需要被理解跳过,因为客户端不提供此回调(服务器这样做是为了可以对结果进行编码和写入以返回给客户端)。[-1..-1]我的问题是理解为此输入了值“未定义”,因此我必须使用笨拙的语法将未定义替换为我的回调。我宁愿跳过它并调用argValues.push cb.

有没有办法让理解跳过这样的值?

0 投票
2 回答
877 浏览

scala - Scala:用于理解的 NoSuchElementException

我有一个网络请求的未来结果,我需要计算它的大小。如果当前响应有项目,我需要再次请求获取下一组,等等。如果当前响应为空,我就完成了。

我现在拥有的代码:

这似乎工作正常,直到 current 没有更多元素,并且我得到 NoSuchElementException 试图获取 current.last.name

我理解如果 !(current.isEmpty) 扩展到过滤器的条件,所以这不是我真正想要的。我想要的是:

我在这里使用 for 理解来轻松处理收集期货(至少这是我过去的做法)。有什么指导/要读的东西吗?我对 scala 还很陌生,所以请温柔一点。