【发布时间】:2017-04-16 08:51:58
【问题描述】:
我正在使用斐波那契函数 g 的一个版本,其中:
g :: Integer -> Integer -> Integer
g i n | i==0 = 0
| i==1 = n
| i>1 = (n*( (g (i-1) n) + (g (i-2) n) ))
...使得 g i n 是 gi(n) 的值,部分定义 g i 是 gi
我现在想定义一个无限的函数列表:gs :: [ Integer -> Integer ],这样(gs !! i) is gi。
我想拿 5 美元 [ g 3 | g <- gs] 给我[0,3,9,36,135]。
谁能帮我定义这个无限列表?
【问题讨论】:
-
请注意,您的函数效率很低,用它构建一个函数列表将产生一个低效函数列表。 (我确实想知道你为什么想要这样一个列表......我担心这可能是一个 XY 问题......)