Bu soru öznel değil. Referans verilen kitapta çok spesifik bir fiil kullanılır ve bu ifadenin ne anlama geldiğini anlamak istiyorum, çünkü korkarım bir şeyi yanlış anlıyorum.
Dan You Bir Haskell bilgi , aşağıdaki paragraf "Biz varsayalım içeren üçüncü ve sonuncusu *".
data Barry t k p = Barry { yabba :: p, dabba :: t k }Ve şimdi bunu bir örnek yapmak istiyoruz
Functor.Functortür istiyor* -> *amaBarryböyle bir şeye benzemiyor. Nasıl bir şeyBarry? Üç tür parametre gerektirdiğini görüyoruz, bu yüzden olacaksomething -> something -> something -> *. Bununpsomut bir tip olduğunu ve dolayısıyla bir çeşit olduğunu söylemek güvenlidir*. Çünkük, varsayıyoruz*ve böylece uzantı tarafındant, bir tür vardır* -> *. Şimdi bu türlerisomethingyer tutucu olarak kullandığımız s ile değiştirelim ve bunun bir tür olduğunu görüyoruz(* -> *) -> * -> * -> *.
Neden bir şey varsayıyoruz? "X'i varsayalım (yani X'in doğru olduğunu varsayalım)" ifadesini okuduktan sonra, X'in yanlış olduğunu da düşünmemiz gerektiğini düşünmek doğaldır. Örneğin belirli bir durumda, olamazdı ttür olması (* -> *) -> *ve ktürünün (* -> *)? Eğer durum buysa, her ne olsaydı tve kaslında, t ksomut bir tip olurdu, değil mi?
Tüm akıl yürütme çizgisinin derleyiciye göre kontrol edildiğini görüyorum, ancak derleyicinin varsaydığını düşünmüyorum . Eğer öyleyse, ne olduğunu bilmek isterim, eğer o zaman tekrar olmazsa korkarım paragrafın anlamını kaçırıyorum.
k :: Lher türlü sahip olabiliriz . Ancak buradaki bir derleyici belirli bir seçim yapmalı veya bir çoklu türe başvurmalıdır. Bir çoklu tür en genel seçenek olacaktır, ancak burada GHC seçer (temel Haskell'in çoklu türleri yoktur, bir uzantı olarak açılması gerekir). Oldukça keyfi bir şey seçtiği için, LYAH "varsay" (AFAICT) kelimesini kullanır.Lt :: L -> *LL = *