我使用一個版本的斐波那契函數g其中:如何實現功能的無限列表的Haskell
g :: Integer -> Integer -> Integer
g i n | i==0 = 0
| i==1 = n
| i>1 = (n*((g (i-1) n) + (g (i-2) n)))
...這樣杜松子酒是GI(n)和部分定義的值gi是gi
我現在想定義一個無限列表函數:gs :: [ Integer -> Integer ]
,這樣(gs !! i) is gi
。我想要5 $ [ g 3 | g <- gs]
給我[0,3,9,36,135]
。
任何人都可以幫助我定義這個無限列表嗎?
請注意,你的作用是相當低效,建設名單其功能將產生低效功能列表。 (我想知道你爲什麼想要這樣的清單......我擔心這可能是一個XY問題......) – chi