javascript curry(カリー化)の使い方

javascript curry(カリー化)の使い方

javascriptで、curry(カリー化)の簡単な使用方法について記述してます。

環境

  • OS windows10 pro 64bit
  • ブラウザ chrome 102.0.5005.115

curry(カリー化)の使い方

まずは、以下のシンプルなアロー関数をcurry化してみます。

let curry = (str1, str2) =>  `${str1}${str2}!!`

console.log(curry('hello','world')) // helloworld!!

カリー化します。

let curry = str1 => str2 =>  `${str1}${str2}!!`

console.log(curry('hello')('world')) // helloworld!!

カリー化すると複数の引数を分割して使用することができます。

なので、部分的に引数を指定することが可能となります。

let curry = str1 => str2 =>  `${str1}${str2}!!`

let part1 = curry('hello')

let part2 = part1('world')

console.log(part2) // helloworld!!

以下のように条件を指定して、第1引数だけ先に固定して、
第2引数の値だけ変更することが可能になり、毎回、第1引数も指定することがなくなり、コードに無駄がなくなります。

let curry = str1 => str2 => `${str1}${str2}!!`

let part1 = curry('hello')

let part2
let num = 1

if (num == 2) {
  part2 = part1('world')
} else {
  part2 = part1('mebee')
}

console.log(part2) // hellomebee!!