Temel kavram, evrensel olarak bazı şekillerde uygulanır, evet, ancak nadiren faydalı bir şekilde.
Başlangıç olarak, bu tür varsayım perspektifinden bakıldığında, "dinamik" dillerin , programcıların gördüğü değerin doğası hakkında (diğer şeylerin yanı sıra) meta verilerini içeren, bu dinamik dillerin ne arayacağı da dahil, tek bir türe sahip olduğu kabul edilir. Bir "tip" kendileri (bu aynı şey değildir, kavramsal olarak). Bu tür kanıtların ilgisiz olması muhtemeldir, bu nedenle bu kavram çoğunlukla statik tip sistemlere sahip dillerle ilgilidir.
Ek olarak, "statik tip bir sistem" olduğu iddia edilen birçok dil, bu bağlamda pratikte dinamik olarak kabul edilmelidir, çünkü çalışma zamanında türlerin incelenmesine ve dönüştürülmesine izin verirler. Özellikle, bu, "yansıma" veya benzeri için yerleşik, varsayılan olarak desteği olan herhangi bir dil anlamına gelir. C #, örneğin.
Haskell, bir türün ne kadar bilgi vermesini beklediği konusunda olağandışıdır - özellikle işlevler, argümanları olarak belirtilenlerden başka hiçbir değere bağlı olamaz. Değişken global değişkenleri olan bir dilde, diğer taraftan, herhangi bir işlev (potansiyel olarak) bu değerleri inceleyebilir ve davranışını buna göre değiştirebilir. Bu nedenle, türlü bir Haskell işlevi, A -> B
bunun A
ima edildiği kanıtlanmış bir minyatür program olarak kabul edilebilir B
; Diğer birçok dilde eşdeğer bir işlev bize, yalnızca A
küresel devletin kapsamındaki her ne olduğunu bir araya getirir B
.
Haskell, yansıma ve dinamik tipler gibi şeyleri desteklerken , bu özelliklerin kullanımı bir fonksiyonun imzasında belirtilmelidir; Aynı şekilde küresel devlet kullanımı için. İkisi de varsayılan olarak mevcut değildir.
Orada olan çalışma zamanı istisnaları izin verme ya da derleyici tarafından sağlanan standart dışı ilkel işlemler kullanılarak Haskell yanı, örneğin şeyleri kırmak için yollar, ancak bu 'onlar sadece won o yönden tam anlayışla kullanılacağını güçlü beklenti ile gelen t Harici kodun anlamına zarar vermeyin. Teoride, aynı şey diğer diller için de söylenebilir, ancak pratikte diğer dillerin çoğunda "hile yapmadan" işleri başarmak hem de "hile" ye daha az kaşlarını çatmaktan daha zordur. Ve elbette gerçek "dinamik" dillerde, her şey alakasız kalıyor.
Konsept Haskell'de olduğundan çok daha ileri götürülebilir.