Scala 流上的归纳证明
Inductive proof on scala stream
有人可以帮助我如何归纳推理这个 scala 代码
lazy val y : Stream[Int] = 1 #:: (y map (_ + 1))
生成从 1 开始的自然数列表?
1 #:: whatever
位置的值为1,所以我们知道y(0) = 1
.
在更大的位置我们有 y(n+1) = whatever(n)
。这里 whatever
是 y map (_+1)
,所以 y(n+1) = (y map (_+1))(n)
。
我们要证明forall n. y(n) = n + 1
。
我们知道 n = 0
、y(0) = 1
也是如此
(y.map(_+1))(n)
就是 y(n) + 1
。这就是地图的作用。所以我们上面的公式就变成了y(n+1) = y(n) + 1
。
然后很简单,如果我们知道y(n) = n+1
,那么y(n+1) = (n+1) + 1
。下一等级的结果为真。我们通过归纳法得到证明。
有人可以帮助我如何归纳推理这个 scala 代码
lazy val y : Stream[Int] = 1 #:: (y map (_ + 1))
生成从 1 开始的自然数列表?
1 #:: whatever
位置的值为1,所以我们知道y(0) = 1
.
在更大的位置我们有 y(n+1) = whatever(n)
。这里 whatever
是 y map (_+1)
,所以 y(n+1) = (y map (_+1))(n)
。
我们要证明forall n. y(n) = n + 1
。
我们知道 n = 0
、y(0) = 1
(y.map(_+1))(n)
就是 y(n) + 1
。这就是地图的作用。所以我们上面的公式就变成了y(n+1) = y(n) + 1
。
然后很简单,如果我们知道y(n) = n+1
,那么y(n+1) = (n+1) + 1
。下一等级的结果为真。我们通过归纳法得到证明。