[英]How to repeat a list of functions in haskell
我希望有一個循環通過某種模式的無限函數列表。 例如: [(+), (-), (+), (-), ...]
如果我做的事情
fmap repeat [(+), (-)]
然后我得到嵌套列表[[a -> a -> a]]
。 在這樣的模式之后獲得單個無限函數列表的最佳方法是什么?
你要找的是cycle :: [a] -> [a]
:
cycle [(+),(-)]
這個表達式的類型是:
Prelude> :t cycle [(+),(-)]
cycle [(+),(-)] :: Num a => [a -> a -> a]
cycle
獲取一個列表[a]
並生成一個列表,其中給定列表一遍又一遍地重復。 所以cycle [1,2,3]
產生[1,2,3,1,2,3,1,2,3,1,...]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.