ich feststellen, dass die diese beiden Definitionen nicht, wo in der die meisten offiziellen Ressource von Haskell Dokumentation gefunden werden:Warum ist `(:)` eingebaut?
(:) :: a -> [a] -> [a]
data [] a = [] | a : []
Ich habe Hoogle und es gibt keine Einträge für data []
oder (:)
. Sollen diese beiden nicht "normale" Funktion und Datentyp sein?
bearbeiten: Im Haskell 2010 Language Report, sie sagen, dass
-- The (:) operator is built-in syntax, and cannot legally be given
-- a fixity declaration; but its fixity is given by:
-- infixr 5 :
Aber warum? Gibt es einen besonderen Grund für diese Funktion?
Seltsame Entscheidung, dass. – dfeuer