2008-09-07 38 views
14

Haskell hakkında bir araştırma makalesi okuyorum ve HList'in nasıl uygulandığını ve anlatılan tekniklerin tip denetçisi için ne zaman alınmayacağını bilmediğini merak ediyorum. Ayrıca, GADT'lerle benzer şeyler yapabileceğiniz için, GADT tipi kontrolün her zaman kararsız olup olmadığını merak ediyordum.Fundeps ve GADTs: Ne zaman yazım denetimi yapılabilir?

Eğer varsa, alıntıları kullanmayı tercih ederim, böylece açıklamaları okuyabilir/anlayabilirim.

Teşekkürler!

+1

Bu soru, araştırma makalesinin yazarlarına daha iyi yönlendirilmiş olabilir. Stack Overflow için biraz ezoterik. (Yorum yapmak için araştırmacılarla her zaman büyük bir başarı elde ettim. Genellikle kendinden geçmişler * herhangi biri * kendi işlerini okuyor.) –

+7

Bence bu tutum (teorik soruların pragmatik bir forum üzerinde hiçbir etkisi yoktur) zararlı ve eskimiş. Pragmatik yaklaşımlar yeni teknolojilere açık olmalıdır, çünkü bu teknolojiler yakın bir gelecekte günlük etkinlikleri iyileştirebilir. örneğin: C#/python'daki işlevsel özellikler. – rcreswick

+0

Yani, Chirs'in yorumu muhtemelen doğru, pratik olarak konuşuluyor. Keşke olmasaydı. – rcreswick

cevap

8

GADT tipi denetimin her zaman karar verilebileceğine inanıyorum; yüksek sipariş birliği gerektirdiği için kararsız olan çıkarımdır. Ancak, bir GADT tipi denetleyici, örn. Gördüğünüz kanıt denetleyicilerinin kısıtlı bir şeklidir. Coq, kurucuların kanıt süresini oluşturduğu yer. Örneğin, GADTs içine lambda calculus gömme klasik örnek her redüksiyon kuralı için bir kurucu vardır, bu yüzden bir terimin normal formunu bulmak istiyorsanız, hangi kurucuların size bunu anlatacağını söylemelisiniz. Durma sorunu kullanıcının ellerine taşındı :-)

+0

Bu iyi bir nokta. Dolayısıyla, GHC'nin GADT'lerin tür çıkarımının ne zaman alınabileceğini merak ediyorum. –

1

Muhtemelen bunu zaten görmüşsünüzdür, ancak Microsoft araştırmalarında bu konuyla ilgili bir dizi makale bulunmaktadır: Type Checking papers. Birincisi, gerçekte Glasgow Haskell derleyicisinde kullanılan, karar verilebilir algoritmayı açıklar.

+0

Başvurulan makaleler iyi yazılardır, ancak soruma cevap vermiyorlar. –