點燈坊

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

Haskell 之 .. Operator

Sam Xiao's Avatar 2021-06-06

Haskell 獨特的 .. Operator,可根據條件建立 List。

Version

Haskell for Mac 1.8.2

.. Operator

[1 .. 10]

產生 110,且 step 為 1 的 List。

range000

[1, 3 .. 10]

產生 110,且 step 為 2 的 List。

range001

[1, 1.5 .. 3]

產生 110,且 step 為 0.5 的 List。

range002

[1, 0 .. -3]

產生 1-3,且 step 為 -1 的 List。

range003

[1 ..]

.. 沒有結束,則產生 Infinite List。

range004

f = map(*2)

由於 Haskell 的 lazy evaluation,因此 map 也可使用 Infinite List。

range005

Conclusion

  • Haskell 的 .. 相當於 Ramda 的 range(),但比 range() 還要靈活