Sanırım muhtemelen karşılaştığınız bir şey, fonksiyonel programlamayı öğrenirken de karşılaştığım bir şey, yani fonksiyonel programlama ile, zorunlu programlama ile düşündüğünüzden daha yüksek bir seviyede düşünebilir / çalışabilirsiniz.
Daha az etkileyici bulduğunuz şey, aslında daha etkileyici olduğunu düşünüyorum : her küçük detayı hecelemek zorunda değilsiniz ve fonksiyonel programlamada daha az kodla daha fazlasını yapabilirsiniz - yazdıklarınız için daha fazla güç var.
Örneğin, zorunlu olarak yazabilirim:
for each (Person person in people)
print(person.name)
İngilizce olarak tamamen okunabilir.
Bir Haskell sürümü olabilir (ve bu geçerli Haskell değil, sadece sözdizimsel karşılaştırma içindir):
map (print . name) people
hangi daha az kod ve daha az detay wrangling gerektirir - Ben bir döngü ve değişken (ler) ( for each (...)
) şeyler yıkmak zorunda değilsiniz , map
fonksiyon benim için bununla ilgilenir.
Bu seviyede çalışmak alışmak biraz zaman alabilir. Eğer yardımcı olursa, Haskell muhtemelen programlamaya başladığımdan beri yeni bir dil öğrendiğim en zor zamandı ve> 10 dil (Lisp dahil) biliyorum. Yine de öğrenmeye değerdi.