純粋な振りして例外投げる関数滅べばいいのに 部分関数ダメゼッタイ お行儀の悪い関数 Haskellにはいくつか「お行儀の悪い関数」があります。ここで言う「お行儀の悪い」とはIOが付いているわけでもないのに例外を投げる関数のことです。数学やhaskellでは「部分関数(partial functions)」と呼ばれているようです。今回はその「お行儀の悪い関数」をどう扱うかという話をします。はっきりと言ってバッドノウハウの類いの話です。 そもそもなぜ部分関数が問題であるのかはPartial Function Considered Harmful - 純粋関数空間で詳しく説明されているのでこちらも併せて読むとより良いと思います(丸投げ haskellにおける部分関数で有名なものにhead, last, tail, initがありますね。これらの関数は空リストを渡すと例外を投げます。divは第二引