小编zha*_*uan的帖子

scala中的函数编程 - 无限流

我正在完成本书的练习和概念:Scala中的函数编程.假设我需要定义一个constant函数,该函数按给定值返回无限流.

这是我的版本:

def constant[A](a: A): Stream[A] = Stream.cons(a, constant(a))
Run Code Online (Sandbox Code Playgroud)

GitHub中的答案:

def constant[A](a: A): Stream[A] = {
  lazy val tail: Stream[A] = Cons(() => a, () => tail)
  tail
}
Run Code Online (Sandbox Code Playgroud)

评论说后者比前者更有效,因为它只是一个引用自身的对象.我无法理解这一点,任何帮助都将不胜感激.(抱歉我的英语不好:)

functional-programming scala

6
推荐指数
1
解决办法
276
查看次数

为什么最多要订购4个元素的集合,而没有排序的元素呢?

给定

val xs1 = Set(3, 2, 1, 4, 5, 6, 7)
val ys1 = Set(7, 2, 1, 4, 5, 6, 3)
Run Code Online (Sandbox Code Playgroud)

xs1ys1这两个结果scala.collection.immutable.Set[Int] = Set(5, 1, 6, 2, 7, 3, 4)

但较小的波纹管

val xt1 = Set(1, 2, 3)
val yt1 = Set(3, 2, 1)
Run Code Online (Sandbox Code Playgroud)

生产

xt1: scala.collection.immutable.Set[Int] = Set(1, 2, 3)
yt1: scala.collection.immutable.Set[Int] = Set(3, 2, 1)
Run Code Online (Sandbox Code Playgroud)

为什么不订购前者而订购后者似乎呢?

scala set

2
推荐指数
1
解决办法
65
查看次数

标签 统计

scala ×2

functional-programming ×1

set ×1