问题标签 [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.
scala - 如何在 Scala 中使用自动增量索引进行理解
是否可以在 Scala 中使用自动增量计数器进行理解?
就像是
scala - Lift JSON 中的非递归提取以便于理解
我正在使用 Lift JSON 的 for-comprehensions 来解析一些 JSON。JSON 是递归的,因此例如该字段id
存在于每个级别。这是一个例子:
以下代码
产生List(1, 2, 3)
. 我期待它的产品List(1)
。
在我的程序中,这会导致二次计算,尽管我只需要线性。
是否可以使用 for-comprehensions 仅匹配顶级id
字段?
scala - 嵌套的惰性理解
我有一个深度“嵌套”的理解,简化为以下 3 个级别:x、y 和 z。我希望只做 xaStream
也会使 y 和 z 计算变得懒惰:
但这计算了所有 3 个元素,如 3 个打印件所证明的那样。我只想计算前 2 个,因为这些都是我从流中获取的。toStream
我可以通过调用第二个等来解决这个List
问题。有没有比在理解的每个层面都调用它更好的方法?
scala - 获取 Scala for/comprehension 表达式的脱糖部分?
有谁知道在实际尝试在 REPL(或编译器)中编译之前如何获得(仅 Scala 部分)for/comprehension 表达式的脱糖翻译?
到目前为止,我发现的唯一东西是编译器“-print”标志,但它为您提供了完整的 Scala 翻译......
scala - 使用带有 Scala "for" 语法的 Eithers
据我了解,Scala 的“for”语法与 Haskell 的一元“do”语法极为相似。在 Scala 中,“for”语法通常用于List
s 和Option
s。我想将它与Either
s 一起使用,但默认导入中不存在必要的方法。
是否可以通过某些导入获得此功能?
有一个小问题:
对于列表,它将是List()
. 因为Option
,它会None
。Scala 标准库是否为此提供了解决方案?(或者也许scalaz
?)如何?假设我想为 Either 提供我自己的“monad 实例”,我该怎么做呢?
scala - scala中对理解评估的懒惰
我是 scala 和大多数函数式语言的新手,我目前正在尝试计算一个数字。我已经写了代码:
我想知道如果我将 scala val 声明为惰性,它会不会在我调用时评估整个理解factors.head
?
scala - 序列理解的类型是什么
我刚刚开始学习 Scala。
当我在http://www.scala-lang.org/node/111中玩一个示例时,我发现类型有问题。
这不会编译并出现以下错误。
但是,如果没有返回值的类型说明,它可以工作并且类是 Vector。
这似乎是矛盾的。让我知道编译类型错误的原因是什么。
scala - 模式匹配序列理解的惯用方式是什么?
构造函数无法实例化为预期类型;找到:collection.immutable.::[B] 需要:scala.collection.immutable.IndexedSeq[Int]
当 match 收到 IndexedSeq 但不是 LinearSeq 时,这与MatchError 相同。
问题是,如何正确地做到这一点?到处添加.toList
似乎不对。如果每个人都这样做,那么创建一个自己的提取器来处理每个Seq
(如另一个问题的答案中所述)会导致一团糟......
我想问题是,为什么我不能影响序列理解的返回类型是什么,或者:为什么Seq
标准库中没有这样一个通用提取器的一部分?
clojure - Clojure For Comprehension example
I am using docjure and it needs a column map for its select-columns function. I would like to grab all my columns without having to specify it manually. How do I generate the following as a lazy infinite vector sequence [:A :B :C :D :E ... :AA :AB :AC .... :ZZ ... :XFD]?
macros - 减少“for”理解重复
在我对Clojure For Comprehension 示例的回答中,我想删除一些重复项:
我想删除“for”重复。我写了以下宏:
适用于:
但如果我尝试:
我得到:
到底是怎么回事?有没有更好的方法来删除重复?