Home Reference Source

src/complement.js

/**
 * 引数の関数の戻り値の真偽を逆にした関数を生成します。
 *
 * @param {function} f - 真偽を返す関数
 *
 * @return {function} 戻り値の真偽が逆になった関数。
 *
 * @example
 * complement(isClojurian);
 * // = Clojurianでなければtrue、Clojurianならばfalseを返す関数
 */
export default function complement(f) {
  return (...args) => !f(...args);
}