點燈坊

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

使用 snd() 取得 Pair 第二值

Sam Xiao's Avatar 2020-12-01

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

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[1])
)(data) // ?

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

snd000

snd()

import { pipe, map, last as snd } from 'ramda'

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

pipe(
  map(snd)
)(data) // ?

Ramda 並沒有內建 snd(),可使用 last() 實現 snd()

snd001

Conclusion

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

Reference

Ramda, last()