関数型プログラミング サンク(thunk)とは

サンク(thunk)とは引数がない関数で値をラッピングしたものです。

const hoge => (_) => {
  return 1;
}

JavaScriptでは関数の引数に関数を渡すことができるので、上記のサンクを引数として渡すことができる。

これによって遅延評価を実現できる。

const hoge = (_) => 1;

const lazyFunc = (flag, funcX) => {
	if(flag) return funcX();
  return 0;
};

lazyFunc(false, hoge); //hogeは実行されない
lazyFunc(true, hoge); //hogeは実行される