點燈坊

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

組合 takeLast 取得 List 最後幾筆資料

Sam Xiao's Avatar 2021-06-13

若想取得 List 最後幾筆資料,Haskell 並沒有內建 takeLast,可自行使用 reversetake 組合。

Version

Haskell for Mac 1.8.2

takeLast

takeLast n = reverse . take n . reverse

takeLast 3 [1..10]
takeLast 3 "wonderful"

組合 takeLast

  • reverse:將 List 反轉
  • take n:取得 List 前幾筆資料
  • reverse:再次將 List 反轉

takelast000

import Control.Category

takeLast n = 
  reverse 
  >>> take n 
  >>> reverse

takeLast 3 [1..10]
takeLast 3 "wonderful"  

改用 >>> 實現。

takelast001

Conclusion

  • Ramda 有內建 takeLast,但 Haskell 沒有,但組合方式一樣