>>430
わざわざありがとう。お手数をおかけしました。

せっかくコード挙げてくれたのにhaskellをちゃんと読めないので誤解しているかもしれないけど、
つまりhaskellの関数は戻り値のパターンを型として明確に定義されることになるので、
受け取り側はそれらのパターンを漏れなく処理することがコンパイラによって義務付けられている
(=違反するとエラーとして検知できる)ということかな?

そうだとすると、型として定義された情報については違反は検知できる、
型の定義を誤る(=人間が誤った意図をコンパイラに指示する)ことは
コンパイラでは検知できないということだよね。

なので、言語仕様としてある種のミスは検知しやすい仕組みがあるが別に万能ではなく、
コンパイルが通ればバグがほぼない、というのは大げさかな、と思う。
逆に言えば、コンパイルが通ればバグがほぼない、という場合に想定しているコードが
haskellの型システムで検知しやすい記述ができるものを想定して議論している、
ような気もする。

確かに数学的、論理的に美しいものなのかもしれないし、俺もそういうのは嫌いではない方だと思う。
(大学卒業後はまったくその手のものに触れていないけどw)
ただ、根本的な目的や用途が違うから、haskellと普通のプログラミング言語を比較して
議論すること自体がナンセンスなのかなと思った。

「コンパイルが通ればバグがほぼない」という点に引っ掛かりを感じただけなので、
けしてhaskellのことを否定的に見ているというわけではないです。