點燈坊

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

使用 fst() 取得 Pair 第一值

Sam Xiao's Avatar 2020-12-01

Ramda 內建不少支援 Pair 的 Function,但卻沒有 fst(),實務上可用 head() 實現 fst()

Version

Ramda 0.27.1

Pair Array

import { pipe, map } from 'ramda'

let data = [
  ['FP in JavaScript', 100],
  ['Programming Haskell', 200],
  ['Speaking JavaScript', 300]
]

pipe(
  map(x => x[0])
)(data) // ?

data 為 Pair Array,若想取得 Pair 的第一值,最簡單使用 x[0] 取得。

fst000

fst()

import { pipe, map, head as fst } from 'ramda'

let data = [
  ['FP in JavaScript', 100],
  ['Programming Haskell', 200],
  ['Speaking JavaScript', 300]
]

pipe(
  map(fst)
)(data) // ?

Ramda 並沒有內建 fst(),可使用 head() 實現 fst()

fst001

Conclusion

  • Pair 本質就是 Array,雖然可以使用 x => x[0],但 fst() 可使其 Point-free

Reference

Ramda, head()