Haskell について私が魅力的だと思うことの 1 つは、関数と変数がどのように同じであるかということです。ほとんどの言語では、関数が何かを実行している間、変数は値を保持し、最終的に値を返します。Haskell ではこの違いは見られず、Haskell を使用した後、変数が関数やメソッドとは異なる、より「伝統的な」プログラミングに戻るのはぎこちなく感じます。値を取得したい場合、それが定数値であるか、変更可能な変数であるか、複雑な計算の結果であるかに関係なく、その元を気にする必要はありません。Haskell では、変数は単なる 0-ary 関数です。
多くのオブジェクト指向言語には、少しギャップを感じさせるプロパティがあります。
Haskell に似たシステムを持つ他の言語を示すことができる人はいますか? 参照透過性のために関数型言語に共通していると思っていましたが、そうではないことがわかりました。たとえば Lisp では、(defun)
関数を明示的に宣言する必要があります。