Eric Lippert'in makalesinde Macar Notasyonu ile Neler Var? Macar Notasyonu’nın (iyi tür) amacının
Depolama temsil bilgisine ek olarak anlamsal bilgileri içerecek şekilde "tip" kavramını da genişletir.
Basit bir örnek, "x" ile bir X koordinatını temsil eden bir değişkeni ve "y" ile bir Y koordinatını temsil eden bir değişkeni (bu değişkenlerin tamsayılar mı yoksa değişkenler mi olduğuna bakılmaksızın "ön") olacaktır. xFoo + yBar
, kod açıkça yanlış görünüyor.
Ama aynı zamanda Haskell'in tip sistemi hakkında da okudum ve Haskell'de, derleyicinin sizin için kontrol edeceği gerçek türleri kullanarak Haskell'de, aynı şeyi (yani "anlamsal bilgiyi içine alan tip kavramını genişletmek") başarabilir . Bu nedenle yukarıdaki örnekte xFoo + yBar
Haskell'da, programınızı doğru tasarladıysanız, uyumsuz türler olarak bildirildiklerinden derleme başarısız olur. Başka bir deyişle Haskell'in tür sistemi, Macar Notasyonu'na eşdeğer derleme zamanı kontrolünü etkili bir şekilde destekliyor gibi görünüyor.
Yani, Macar Notasyonu sadece tip sistemleri anlamsal bilgiyi kodlayamayan programlama dilleri için bir yardım grubu mu? Veya Macar Notasyonu Haskell'in gibi statik tip bir sistemin sunabileceklerinin ötesinde bir şey sunuyor mu?
(Tabii ki, Haskell'i örnek olarak kullanıyorum. Benzer ifade edici (rich? Strong?) Tip sistemlere sahip başka diller olduğundan eminim, ancak hiçbirine rastlamadım.)
Açık olmak gerekirse, ben değilim değil değişken isimleri annotating bahsediyor veri türü değil, hakkında bilgi anlam programı çerçevesinde değişkenin. Örneğin, bir değişken bir tamsayı ya da değişken ya da çift ya da uzun ya da her neyse olabilir, ama belki de değişkenin anlamı , inç cinsinden ölçülen göreceli bir x koordinatı olmasıdır. Bu, Macar Notasyonu (ve Haskell tipleri) aracılığıyla kodlamaktan bahsettiğim bilgi türüdür.