轉成單一 Array 參數 Function

讓原本多參數的 Function,透過 Ramda 的 apply() 成為單一 Array 參數的 Function。

Version


VS Code 1.31.1
Quokka 1.0.136
Ramda 0.26.1

Normal Function


1
2
3
const add = (x, y, z) => x + y + z;

console.log(add(1, 2, 3));

add() 為普通 function,提供了 3 個參數。

apply000

apply()


1
2
3
4
5
import { apply } from 'ramda';

const add = (x, y, z) => x + y + z;

console.log(apply(add)([1, 2, 3]));

若想將原本 add()3 個參數,變成 array 為參數的 function,可使用 Ramda 的 apply() 加以轉換。

apply()
(*… → a) → [*] → a
使多參數 function 變成以 array 為單一參數的 function

(*… → a):原本多參數 function

[*] -> a:變成以 array 為單一參數 function

apply001

Conclusion


  • apply() 因為有 a,所以參數為 array,這樣聯想可以幫助記憶
  • 透過 apply(),可以將原本為多參數 function 轉成單一 array 為參數

Reference


Ramda, apply()

2019-03-10