>>563
さっきもチラッと書いたけど主に「参照透過性」
基本的には同じ引数を渡せば、いつ・どこで呼び出しても同じ結果を返すことだけど、たとえ副作用があってモナドがなくても、この考え方があれば構造は見通しの良いものになる
言語仕様的にこれを前提においてサポートすれば、高階関数のようなC系言語では複雑になりがちな機能をシンプルに記述できるし、引数や戻り値の型も管理しやすくなる
予測可能で合成しやすいコードになることが最大のメリットで、多人数開発や保守において状況を改善できる
もちろん型を対象として扱うことで、Option型やパターンマッチング、カリー化などでエラー管理や条件分岐、シグネチャの統一などのメリットも享受しやすくなるけど、これはあまり本質的ではない