TL;DR
引数を受け取り、真(true)か偽(false)のどちらかを返す関数。数学では、ある集合 X から真偽の 2 値への関数 f : X → B として表され、述語(predicate)や命題(proposition)とも呼ばれる。
例
XState のガード関数は述語関数で、true を返したときだけ状態遷移を許す。false を返すと、actions も target も実行されない。
Effect の Effect.filterOrFail は、第 1 引数の述語関数が false を返したとき、第 2 引数で作ったエラーで元の Effect を失敗させる。