def foldRight[B] (z : =>B) (f :(A, =>B) => B) :B
def headOptionViaFoldRight():Option[A]=foldRight(None:Option[A])((h,t)=> Some(h()))
def takeWhileViaFoldRight(f:A=>Boolean):Stream[A]=foldRight(Stream[A]())((h,t)=> Some(h))
def forAll(p:A=>Boolean):Boolean=foldRight(true)((a,b)=>p(a)&&b)
为什么没有:headOptionViaFoldRight中的第一个参数中的选项[A]?
为什么在takeWhileViaFoldRight的第一个参数中输出[A]?
为什么在forAll的第一个参数中为真?
对于在foldRight的第一个参数中使用什么感到困惑?
答案 0 :(得分:1)
对于在foldRight的第一个参数中使用什么感到困惑?
初始值:你在空序列上得到什么。
答案 1 :(得分:1)
为什么在forAll的第一个参数中为真?
根据惯例和历史先例,空集合上的exists()
返回false
,而空集合上的forall()
返回true
。