Int 的 Scala 序列

Cod*_*er0 2 int scala range sequence

我有这样的事情:

    case class FunctionsTest(lowerBound: Int = 1,
                                upperBound: Int = 1000,
                                factor: Int = 2) {
  require(lowerBound < upperBound)

  /**
    * implement a sequence of ints, which start with lowerBound and end with
    * upperbound.
    *
    * for all elements following should be true:
    *
    * xs(i) < xs(i+1)
    * xs(i) + factor == xs(i + 1) (for i > 0 and i <= 1000)
    *
    */
  val xs: Seq[Int] = Seq.range(lowerBound,upperBound +1)
Run Code Online (Sandbox Code Playgroud)

所以我需要一个这个类的序列来满足这些标准..我尝试了

序列范围()

但它为我创建了适合第一个标准的序列,但我不知道现在如何应用评论中提到的第二个标准?

Bri*_*ian 6

step的参数允许Seq.range[T](start: T, end: T, step)您按因子增加。

scala> Seq.range(1,10,2)
res0: Seq[Int] = List(1, 3, 5, 7, 9)
Run Code Online (Sandbox Code Playgroud)

这满足两个标准。

scala> res0.zip(res0.tail).forall(t => t._1 < t._2)
res4 Boolean = true
Run Code Online (Sandbox Code Playgroud)

scala> res0(0) + 2 == res0(0 + 1)
res5: Boolean = true
Run Code Online (Sandbox Code Playgroud)