私はHaskellを学び始めています。私は非常に新しいので、基本的な構成を理解するために、オンラインブックを数冊読んでいます。
よく知っている「ミーム」の1つは、「コンパイルすれば機能します*」というもの全体です。これは型システムの強さに関係していると思います。
この点で、Haskellが他の静的に型付けされた言語より正確に優れている理由を理解しようとしています。
別の言い方をすれば、Javaでは、ArrayList<String>()
実際にあるべきものを含めるために、埋めるような凶悪なことを行うことができると思い
ますArrayList<Animal>()
。ここでは凶悪な事はあなたがいることであるstring
含まれているelephant, giraffe
などと、誰かが中に入れた場合Mercedes
-あなたのコンパイラは、あなたを助けにはなりません。
私は場合はやったんArrayList<Animal>()
私は私のプログラムは、それが車についてです、動物については本当にないことにした場合、時間内にいくつかの後の時点で、その後、私は、たとえば、生産機能に変更することができますArrayList<Animal>
生成することをArrayList<Vehicle>
、私のIDEがどこでも私に教えてくださいコンパイルの中断です。
私の推測では、これは人々が強力な型システムによって意味するものですが、Haskellの方が優れている理由は私には明らかではありません。別の言い方をすれば、良いJavaまたは悪いJavaを書くことができます。Haskellでも同じことができると思います(つまり、実際にファーストクラスのデータ型であるはずの文字列/ intに詰め込みます)。
重要/基本的なものが不足していると思われます。
私のやり方の間違いを見せていただければ幸いです!
Maybe
が最後にしか言及していないのか分かりません。より人気のある言語がHaskellから借用すべきものを1つだけ選択しなければならなかった場合、これがそれです。これは非常に単純なアイデアです(したがって、理論的な観点からはあまり面白くありません)が、これだけで仕事が非常に簡単になります。