我看到了這段代碼來生成斐波那契數。Haskell如何生成這個無限列表?
fibs = 1:1:(zipWith (+) fibs (tail fibs))
可以類似風格的代碼被寫入產生無限的名單[1 ..]
我在Haskell網站上看到這個link on cyclic structures。
有給出一個例子
cyclic = let x = 0 : y
y = 1 : x
in x
我想在一個循環的方式來定義我的問題的列表,但未能成功。 我想要的是一個根據其本身定義的列表,並且在Hasekll中評估爲[1 ..]。
注:Haskell [1..]
評估爲[1,2,3,4,5...]
而不是[1,1,1...]
。
'ones = 1:ones' –
這個和Haskell中的'[1 ..]'不一樣。當你的計算結果爲[1,1,1,1 ...]'時,Haskell'[1 ..]'評估爲[1,2,3,4,5 ...]'。 –
啊,好的。 'nats = 1:map(+1)nats'。 –