Was ist [] (Listenkonstruktor) in Haskell?

Ich Probleme Mit dem Verständnis funktoren, insbesondere, was eine konkrete Typ ist in LYAH. Ich glaube, das ist weil ich verstehe nicht, was [] wirklich ist.

fmap :: (a -> b) -> f a -> f b  
  1. Ist [] einen Typ-Konstruktor? Oder ist es ein Wert-Konstruktor?
  2. Was bedeutet es, der Art von: [] :: [a]?
  3. Ist es wie Maybe Typ-Konstruktor, oder Just Wert-Konstruktor?
    1. Wenn es wie Just dann kommen wie Just hat eine Signatur wie Just :: a -> Maybe a eher als Just :: Maybe ain anderen Worten, warum ist nicht [] eingegeben [] :: a -> [a]
  4. LYAH sagt, es gilt für funktoren: Merken, wie wir nicht schreiben instance Functor [a], in denen aufgrund von fmap :: (a -> b) -> f -> f-b, sehen wir, dass die f hat eine Art Konstruktor, einen Typ. [a] ist bereits ein konkreter Typ (der eine Liste mit jeder Art von innen), während [] ist eine Art Konstruktor, der einen Typ und produzieren können Typen wie [Int], [String] oder sogar [[String]]. Ich bin verwirrt, wenn die Art der [] bedeutet es ist wie ein literal für [a] was ist LYAH versuchen zu bekommen?

InformationsquelleAutor der Frage Evan Carroll | 2010-02-16

Schreibe einen Kommentar