繁体   English   中英

如何在Haskell中实现功能的无限列表

[英]How to implement an infinite list of functions in Haskell

我正在使用Fibonacci函数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) ))

...这样gin是gi(n)的值,部分定义gi是gi

我现在想定义一个无限的函数列表: gs :: [ Integer -> Integer ] ,这样(gs !! i) is gi

我要5美元[ g 3 | g <- gs] [ g 3 | g <- gs] [0,3,9,36,135]给我[0,3,9,36,135]

谁能帮我定义这个无限列表?

您可以使用[0 ..]获取所有从0开始的数字列表。 一旦有了,只需将g应用于每个对象即可。

您可以像在示例用法中那样使用列表理解来做到这一点:

gs = [g i | i <- [0 ..]]

或使用地图:

gs = map g [0 ..]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM