LengthByFoldLeft

object LengthByFoldLeft {

  def length[T](as: List[T]): Int = FoldLeft.foldLeft(as, 0)((acc, _) => acc + 1)

  def main(args: Array[String]): Unit = {
    println(length(Nil))
    println(length(List(1, 2, 3, 4)))
    println(length(List(1, 2, "a", 4)))
    println(length(List(1)))
  }

}
0
4
4
1
时间: 2024-12-14 18:08:03

LengthByFoldLeft的相关文章

泛函编程(7)-数据结构-List-折叠算法

折叠算法是List的典型算法.通过折叠算法可以实现众多函数组合(function composition).所以折叠算法也是泛函编程里的基本组件(function combinator).了解折叠算法的原理对了解泛函组合有着至关紧要的帮助.折叠算法又可分右折叠和左折叠.我们先从右折叠(foldRight)开始: 从以上两图示可以得出对List(a,b,c)的右折叠算法:op(a,op(b,op(c,z))) 可以看出括号是从右开始的.计算方式如图二:op(a,sub), sub是重复子树,可以肯