2011-03-19 12 views
18

Olası Çoğalt:GHCi'de, niçin işlev türü `` tür (->) `soru işaretlerini içerir (->) :: ?? ->? -> * `?

Prelude> :kind (->) 
(->) :: ?? -> ? -> * 
: Ben işlevi Çeşidi tür sorarsanız

Haskell Weird Kinds: Kind of (->) is ?? -> ? -> *

GHCi yılında

(versiyon 7.0.2), sonuç soru işaretleri var

Neden tür sadece yıldız işareti * -> * -> * yerine soru işaretlerini içerir? Soru işaretleri ne anlama geliyor? Neden diğer türler sadece yıldız işaretleri kullanıyor?

Prelude> :kind (,) 
(,) :: * -> * -> * 
+1

IMO, GHC, yeni başlayanları karıştırdığı için GHCi'ye özel bir pragma verilirse, sadece bu genişletilmiş içerikleri sergileyecekse daha çok isterim. – fuz

+1

Ayrıca bkz. Don Stewart'ın daha ayrıntılı açıklaması [burada] (http://stackoverflow.com/questions/3034264/haskell-weird-kinds/3034295#3034295). –

cevap

16

? ve ?? çeşit GHC uzantıları, özellikle kutulanmamış tipleri ile ilgilidir. ki sadece olabilir (#) (kutulamasının küpe, - ("# ve * en üst sınır" kutu veya normal kutulamasının tip), http://hackage.haskell.org/trac/ghc/wiki/IntermediateTypes uzatılmış tiplerin arasındaki ilişkileri ? (tüm olası tip), # (kutulamasının tip), ?? gösteren bir şema yer alır az sayıda bağlamda kullanılabilir). (Standart tür *, normal kutulu tiplere karşılık gelir.)

İlgili konular