ben Haskell wiki kitaplar aracılığıyla gidiyorumTür İmzalar
https://en.wikibooks.org/wiki/Haskell/GADT kılavuzu GADTS.
Kons Konstrüktörün kısıtlanmış türünü genelleştiren bir Tür imzası eklenene kadar oldukça iyi bir şekilde izliyordum. Güvenli ve güvenli olmayan MarkedLists hem karşı ben inşa etmek Eksileri kurucu kullanabilirsiniz Tür İmza ve desen eşleme ile
data Safe
data NotSafe
data MarkedList :: * -> * -> * where
Nil :: MarkedList t NotSafe
Cons :: a -> MarkedList a b -> MarkedList a c
safeHead :: MarkedList a Safe -> a
safeHead (Cons x _) = x
silly 0 = Nil
silly 1 = Cons() Nil
silly n = Cons() $ silly (n-1)
. Ne olup bittiğimi anladığım halde, ne yazık ki, Tip İmzanın buna nasıl izin verdiğine dair herhangi bir sezgi oluşturmada sorun yaşıyorum. Neden İmza'ya ihtiyacım var? Nazım İmza ne yapıyor?
...' iş gibi görünüyor
GHC 7.4.1'de aswell. Ne tür bir imza sağladığından emin değilim. – ExternalRealityBu bana aynı şeyi söylemenin alternatif bir yolu gibi görünüyor. –
Evet, ancak Kind İmzanın, ikincisi yoksa bir dil pragmaya ihtiyacı vardır. Neden, her iki yol aynıysa? Kind İmzası ne kadar ekstra sağlar? – ExternalReality