我想要一个无限的函数列表,可以循环使用某种模式。例如:[(+)、(-)、(+)、(-)、...]
如果我做类似的事情
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/