Haskell'i öğrenmeye başladım . Ben çok yeni biriyim ve kafamı temel yapıları etrafında gezdirmek için birkaç çevrimiçi kitabı okuyorum.
Tanıdığı insanların sıkça konuştukları 'mem'lerden biri, "derlerse işe yarar *" meselesidir - bence bu, tip sisteminin gücüyle ilgili olduğunu düşünüyorum.
Neden tam olarak Haskell'in bu konuda diğer statik olarak yazılmış dillerden daha iyi olduğunu anlamaya çalışıyorum .
Başka bir deyişle, Java'da, ArrayList<String>()
gerçekten olması gereken bir şeyi içermek için gömme gibi bir şey yapabileceğini farz ediyorum
ArrayList<Animal>()
. Burada iğrenç şey senin olmasıdır string
içeren elephant, giraffe
vb, ve birisi de koyarsa Mercedes
- derleyicinizin size yardımcı olmayacaktır.
Ben ise yaptığı yapmak ArrayList<Animal>()
benim program araçların hakkında, hayvanlar ilgili değil karar verirseniz, zamanla daha ileri noktada, o zaman, o zaman, diyelim ki, üreten bir işlev değiştirebilir ArrayList<Animal>
üretmek ArrayList<Vehicle>
ve benim IDE orada beni her yerde söylemelidir bir derleme sonu.
Benim varsayım, insanların güçlü bir tip sistemle kastettiği şeydir , ancak Haskell'in neden daha iyi olduğu bana açık değil. Başka bir deyişle, iyi veya kötü Java yazabilirsiniz, Haskell'de de aynı şeyi yapabileceğinizi varsayıyorum (yani, gerçekten birinci sınıf veri türleri olması gereken dizgilere / ints'e şeyler ekler).
Temel / önemli bir şeyi kaçırdığımdan şüpheleniyorum.
Yollarımdaki hatayı göstermekten çok mutlu olurum!
Maybe
sadece sona doğru geldiğini bilmiyorum . Haskell'den daha popüler dillerin ödünç alacağı bir şey seçmek zorunda kalsaydım, bu olurdu. Bu çok basit bir fikir (teorik açıdan çok ilginç değil), ancak bu tek başına işlerimizi çok daha kolaylaştıracak.