nor*_*ane 5 haskell functional-programming
我希望有一个循环通过某种模式的无限函数列表.例如:[(+), (-), (+), (-), ...]
如果我做的事情
fmap repeat [(+), (-)]
Run Code Online (Sandbox Code Playgroud)
然后我得到嵌套列表[[a -> a -> a]].在这样的模式之后获得单个无限函数列表的最佳方法是什么?
Wil*_*sem 13
你在寻找的是cycle :: [a] -> [a]:
cycle [(+),(-)]Run Code Online (Sandbox Code Playgroud)
这个表达式的类型是:
Prelude> :t cycle [(+),(-)]
cycle [(+),(-)] :: Num a => [a -> a -> a]
Run Code Online (Sandbox Code Playgroud)
cycle获取一个列表[a]并生成一个列表,其中给定的列表一遍又一遍地重复.所以cycle [1,2,3]生产[1,2,3,1,2,3,1,2,3,1,...]