∞ 在 JS 中模拟 Haskell 的无穷数组

Haskell 的无穷数组

Haskell是一种标准化的,通用的纯函数式编程语言,有惰性求值和强静态类型。因为有惰性求值,所以在 Haskell 中你可以创建一个无限数组。例如

  • [0..], 创建一个 0, 1, 2… 不断递增的数组
  • repeat 0, 创建一个全是 0 长度为正无穷的数组
  • let a = 1:2:a
    • 创建一个数组 a,第一个元素是 1,第二个元素是2,剩下来的是 a (没错,可以递归定义)
    • 得到一个 [1, 2, 1, 2, 1, 2…] 无限重复的数组

用无穷数组解序列问题

无穷数组对序列的描述能力很强。定义符号 “++” 代表链接两个序列,那么

等差数列可以这样描述

f(a0,b)=[a0]++f(a0+b,b)f(a_0, b) = [a_0] ++ f(a_0 + b, b)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享