2008-02-02 オブジェクト指向 vs 非オブジェクト指向 またまた、Scala と Haskell の比較ネタ。xに対して、a -> b -> c という順番で関数を適用する時、 Scala: x.a.b.c Haskell: c(b(a(x))) または c $ b $ a x という形式になります。両方とも関数型言語ですが、設計思想が、 Scala: オブジェクト指向と相性を良くする Haskell: 数式を直接表現できるようにする。数式だとc(b(a(x))) という設計思想の違いから来ています。処理されている手続き順から見ると、Scala の方が可読性が高いです。特に関数型言語は、関数を数珠繋ぎにすることが多いので、そのことが顕著に表れます。でも、数学をコンピュータに移植する際は、Haskell の方が違和感が少ないんだろうなぁ。Scalaの方がよりチューリングマシンに近く、Haskellの方がより数学に近いです。