haskell - 如何在haskell中重复函数列表

标签 haskell functional-programming

我想要一个无限的函数列表,可以循环使用某种模式。例如:[(+)、(-)、(+)、(-)、...]

如果我做类似的事情

fmap repeat [(+), (-)]

然后我得到嵌套列表[[a -> a -> a]]。获得遵循这样的模式的单个无限函数列表的最佳方法是什么?

最佳答案

您正在寻找的是cycle :: [a] -> [a] :

<b>cycle</b> [(+),(-)]

该表达式的类型是:

Prelude> :t cycle [(+),(-)]
cycle [(+),(-)] :: Num a => [a -> a -> a]

cycle 接受一个列表 [a] 并生成一个列表,其中给定的列表会一遍又一遍地重复。因此循环[1,2,3]产生[1,2,3,1,2,3,1,2,3,1,...]

关于haskell - 如何在haskell中重复函数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45651137/

相关文章:

c++ - "type-switch"在 C++11 中构造

javascript - 如何将数据从对象树转换为像这样的对象数组

haskell - 在 Haskell 中执行 while 循环

haskell - 我可以让 readProcess 去掉引号吗?

具有两个参数的 Haskell 组合

Clojure 不断和映射函数

javascript - Immutable.js 比较是如何工作的?

haskell - 为什么这个 Yampa 弹球会陷入死循环?

haskell - Aeson:如何解析带有字符串化对象元素的对象?

Haskell 随机吐出错误的数字