若想根據特定 Pattern 建立無限 List,可使用 cycle
實現。
Version
Haskell for Mac 1.8.2
cycle
f = cycle
f [1]
f [1, 2]
將 List 傳入 cycle
,將以此為 pattern 建立無限 List。
f n = take n (cycle [1])
f 2
f 4
無限 List 能做什麼呢 ? 由於 Haskell 的 Lazy Evaluation 特性,搭配 take
仍可處理無限 List。
Conclusion
cycle
實務上較少使用,但由於 Haskell 的 lazy evaluation,使得一般 function 也能搭配cycle
使用