點燈坊

失くすものさえない今が強くなるチャンスよ

使用 cycle 建立無限 List

Sam Xiao's Avatar 2021-07-02

若想根據特定 Pattern 建立無限 List,可使用 cycle 實現。

Version

Haskell for Mac 1.8.2

cycle

f = cycle

f [1]
f [1, 2]

將 List 傳入 cycle,將以此為 pattern 建立無限 List。

cycle000

f n = take n (cycle [1])

f 2
f 4

無限 List 能做什麼呢 ? 由於 Haskell 的 Lazy Evaluation 特性,搭配 take 仍可處理無限 List。

cycle001

Conclusion

  • cycle 實務上較少使用,但由於 Haskell 的 lazy evaluation,使得一般 function 也能搭配 cycle 使用