以下は個人的なメモ書きでサイトのただの写し。詳細は以下のサイトを。 関数型言語で工数削減できる理由、前編 - えちょ記 関数型言語で工数削減できる理由、後編 - えちょ記 パターンマッチ 関数の入り口に条件判断記述をする コンパイル時あるいは実行時にif文が合成され,パラメータで処理が分岐する 末尾呼出しの最適化 ループではなく再帰で繰り返しを表現する 変数の再代入不可 デバッグを行うときに威力を発揮する 再代入不可である限り、値のバグはコードを追うだけで特定可能 ステップ実行で追いかけないと見つけられないようなバグには滅多に出くわさない 並行処理によるスレッドの相互干渉箇所を限定しやすい 高階関数 関数を引数として受け取る関数のこと 個々の関数を使い回せるように「分かりやすい単位で処理を分けた関数を用意して、後で組み合わせることができる」 大雑把に言えば全ての関数がジェネリックの適用対象