[高階関数/Higher-order function] 英語の記事・動画まとめ No.1


The coding trainの解説

元動画: https://www.youtube.com/watch?v=H4awPsyugS0

function hello () {
}

上は普通のfunction。

高階関数とは2つ以上の関数(function)を使用するということ。それはparameterに入れたり、戻り値としてfunctionを設定したり、いろんなことが出来るんです。

function hello(function) {
  return funtion 
}

具体的にみてみよう

1) 例えば以下のようにsingという関数がla la la -- という文字数を出すとしましょう

function sing(){
  console.log('la la la la la')
}

2) la la la laの他にも他の音を一緒に出したい時はどうしましょう?
このような時は、別でmeow meowというfunctionを作って、singの引数として渡してしまえるんです!

function sing(callback){
  console.log('la la la la la')
  callback();
}

function meow(){
    console.log('meow meow')
}

3) 以下のようによりシンプルな表現にすることも可能です

sing(function(){
  console.log('meow meow');
});

function を戻り値にする場合

function multiplier (x, factor) {
  return x * factor; 
}

でも、もしこの計算をしてくれるfunctionを戻り値として出したい場合はどうなるでしょうか?

function multiplier (factor) {
  return function(x) {
    return x * factor; 
  }
}

1) multiplierに数字を入れて、その結果を変数に入れてみると・・・

let doubler = multiplier(2)といれると、undefined となりますが、
ここで戻ってきているのは関数・・・そう、function(x){return x * 2}ということになる!! 

2)その次に,doubler(2) と入力すると、 そう・・・・ 4が結果として表示されます!!