抱歉出现这样的问题。我是一个非常初级的程序员,刚开始学习Haskell。最近我遇到了一个练习,在Haskell中实现一个返回无限斐波那契数列的函数。以下代码是答案:
有人能解释一下为什么我们需要在这里声明另一个函数(
fibs :: [Int]
fibs = fibs2 0
where
fibs2 :: Int -> [Int]
fibs2 x = (fib2) x : (fibs2 (x+1))
有人能解释一下为什么我们需要在这里声明另一个函数(
fibs2
)以及在这种情况下“where”是什么意思吗?
fib2
如何定义? - jpmarinierwhere
引入了一个本地定义,并且在大多数 Haskell 的介绍中都有早期的涵盖。 - molbdnilofib2
看起来是一个函数,它返回第i
个斐波那契数。fibs2
是一个函数,它通过一次计算一个斐波那契数,然后递归生成 其余 的斐波那契数来构建列表。 - chepner