- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 HS 的大四学生,也是函数式编程和 Scala 的新手。我在 Scala REPL 中尝试了一些结构,需要一些关于返回响应的指导
//Defined a tuple
scala> val x =(2.0, 3.0, 1)
x: (Double, Double, Int) = (2.0,3.0,1)
//This made sense to me. Result is a list of values that are of type Ints
scala> x.productIterator.dropWhile(_.isInstanceOf[Double]).toList
res1: List[Any] = List(1)
**//This DID NOT make sense to me. Why are Double values included?**
scala> x.productIterator.dropWhile(_.isInstanceOf[Int]).toList
res0: List[Any] = List(2.0, 3.0, 1)
//filter operator seems to work
scala> x.productIterator.toList.filter(x => x.isInstanceOf[Double])
res7: List[Any] = List(2.0, 3.0)
最佳答案
Iterator.dropWhile
只要与提供的谓词匹配,就会删除任何值,并返回迭代器的其余部分:
Skips longest sequence of elements of this iterator which satisfy given predicate p, and returns an iterator of the remaining elements.
Double
,因此它是您具体化为
List[A]
的整个迭代器.
isInstanceOf[Double]
时放下,您将收到一个包含单个元素的列表
1
:
scala> x.productIterator.dropWhile(_.isInstanceOf[Double]).toList
res13: List[Any] = List(1)
关于Scala 和 dropWhile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40178111/
我是 HS 的大四学生,也是函数式编程和 Scala 的新手。我在 Scala REPL 中尝试了一些结构,需要一些关于返回响应的指导 //Defined a tuple scala> val x =
在示例中,我观察到 dropWhile 的行为: *Main> dropWhile (/= 'X') "AXF" "XF" 但是,我很困惑为什么 "AX" 不返回: *Main> dropWhile
val xs = Iterator .from(1) .dropWhile(_ % 2 != 0) .takeWhile(_ < 10) .toList val ys = Iterat
val xs = Iterator .from(1) .dropWhile(_ % 2 != 0) .takeWhile(_ < 10) .toList val ys = Iterat
简介 我想出了一个巧妙的解决方案来解决我的问题,但不太巧妙,它不起作用:-/ 在我认为点击调试器几个小时之后,也许你可以验证这一点,它不起作用的原因是因为 itertools.dropwhile,在初
我正在尝试使用 itertools.dropwhile 仅从生成器返回第三个元素之后的元素,但我遇到了一些麻烦: from itertools import dropwhile it = (i
我正在努力寻找一种方法来根据谓词跳过流开头的某些元素。 类似这样的事情: dropWhile( n -> n inTail.b || i >= 3 && (inTail.b = true))
我需要读取几个 .dat 文件并从中提取适当的信息。 .dat 文件通常以大约 15-25 行注释开始(行以“#”开头),然后接下来的两行是数字,表示其性质和大小。但是,一旦我尝试阅读第一行非注释行,
我正在努力寻找一种方法来根据谓词跳过流开头的某些元素。 像这样: dropWhile( n -> n inTail.b || i >= 3 && (inTail.b = true))
我正在尝试学习 Java-9 中的新功能 我开始了解 Stream 的 dropWhile 方法,但它在两种不同的情况下返回不同的值。这是我的代码 package src.module; import
有人可以帮我了解这里发生的事情吗 lists:dropwhile(fun(X) -> X X X < 8 end, lists:seq(1,10)), io:format("~w", [MyLis
考虑以下因素: module Main where import Criterion.Main import qualified Data.Vector as V f1 ::
我看过相关帖子,但不太了解这个问题。我正在寻找一种在外循环中快进迭代器而不在循环中调用 next() 的方法。 答案可能只是在内循环中使用相同的迭代器,但我认为 itertools 可能是一种不错的方
我认为在 scala 中这些方法工作正常但在 java9 dropWhile 中工作不同。 这里是 takeWhile 的例子 Stream.of("a", "b", "c", "de", "f",
给定一个条件,我想搜索一个元素列表并返回第一个达到条件的元素和前一个元素。 在 C/C++ 中,这很容易: int i = 0; for(;;i++) if (arr[i] == 0) break;
为什么 dropwhile 和 takewhile 会跳过下面例子中的最后一个 a? >>> import itertools >>> s = "Aardvark" >>> def vowel(c):
我有一个包含多个报告的文本文件。每个报告都以文字“REPORT ID”开头,并具有特定值,即 ABCD。对于简单的情况,我只想提取那些具有 ABCD 值的报告的数据。对于复杂性,我只想提取 TAG1
我一直在用 .foldRight() 递归地实现高阶函数。喜欢 any , all , 和 takeWhile作为实践,但 dropWhile一直难以捉摸。 _Collections.kt具有命令式的
我现在正在阅读《Modern Java in Action》。在流部分,我不清楚一件事。我们有 list : //public Dish(String name, boolean vegetarian
是否有一种简单的方法可以在 N 循环后停止迭代器?当然我可以写这样的东西: for i, val in enumerate(gen()): if i > N: break 但我想写一些类似的东
我是一名优秀的程序员,十分优秀!