Haskell Garip Tür: (- >)?? -> ? -> *
Haskell tür deniyordum, ve ->
ve bu tür ortaya çıktı almaya çalışırken:
$ ghci
...
Prelude> :k (->)
(->) :: ?? -> ? -> *
Prelude>
Yerine beklenen * -> * -> *
.
Ne ??
?
şeyler? Beton türleri anlamına mı gelir ya da ""? tür değişkenler Ya da başka bir şey?
CEVAP
Bu Haskell tür bir sistemin DZD-özel uzantıları vardır. Haskell 98 raporu 11**:
... tür ifadeler gizli al bir tane farklı tür, içine iki olası formları:
Sembol * türünü temsil eder tüm nullary tür markalar. K1 eğer ve çeşit k2, k1 -^ o zaman . k2. sanki bir tür bu tür tür k1 ve k2 türü döndürür.
Biraz formu extends this system, unboxed types, izin kistlerinin alt tiplerinin belirlenmesindeki ve işlev construtor çeşit üzerinde polimorfik izin vermek için DZD. Kafes DZD destekliyor biraz da
?
/\
/ \
?? (#)
/ \
* #
Where: * [LiftedTypeKind] means boxed type
# [UnliftedTypeKind] means unboxed type
(#) [UbxTupleKind] means unboxed tuple
?? [ArgTypeKind] is the lub of {*, #}
? [OpenTypeKind] means any type at all
ghc/compiler/types/Type.lhs tanımlanmış
Özellikle:
> error :: forall a:?. String -> a
> (->) :: ?? -> ? -> *
> (\\(x::t) -> ...)
Son örnek t :: ??
(yani Kutusuz bir demet değil). Alıntı DZD için, "tür düzeyinde biraz kistlerinin alt tiplerinin belirlenmesindeki var".
İlgilenen ruhlar, DZD de destekler zorlama türleri ve tür ("türü terimler hangi hareket olarak kanıt türü için eşitlik", gerektiği gibi System Fc) kullanılan GADTs, newtypes ve tür aileler.
Haskell bir programın performansını an...
Garip bağlantı hatası: DSO komut satır...
Giriş ayrıştırma hatası `=' Haskel...
Daha hızlı derlenmiş Haskell daha Pyth...
`Haskell/adalet` sözcüğünü DZD ne yapa...