Y a-t-il une différence entre les deux types "a" et "t" dans la signature de type Haskell ou sa seule désignation différente comme le type "a" et le type "b"?Quelle est la différence entre le type "a" et le type "t" dans la signature de type Haskell?
dans le type https://www.haskell.org/tutorial/goodies.html [a] est défini comme suit:
[a] est la famille des types consistant en un pour chaque type, le type des listes d'un. Les listes d'entiers (par exemple [1,2,3]), les listes de caractères (['a', 'b', 'c']), même les listes de listes d'entiers, etc., sont tous membres de cette famille. (Notez, cependant, que [2, 'b'] n'est pas un exemple valide, car il n'y a pas de type unique qui contient à la fois 2 et «b.)
Cette définition est également appliquée pour le type" t "?
un exemple pourrait être:
foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b
app :: [t] -> t -> [t]
Cela dépend s'il existe une restriction de type dans la signature correspondant à ces symboles. Montre la signature en question. – Carcigenicate
Non, si les variables de type ne se produisent pas dans les contraintes de type, ce ne sont que des variables. Le nom de ces variables est arbitraire. Mais parfois un nom plus sémantique peut être utile. Comme 'n' pour nombre, etc. –
Pas une réponse complète mais peut-être il est utile de savoir que' foldl :: Pliable t => (b -> a -> b) -> b -> ta -> b' est équivalent à 'foldl :: Pliable x => (y -> z -> y) -> y -> xz -> y' et' app :: [t] -> t -> [t] 'équivaut à' app :: [u] -> u -> [u] ' – TobiMcNamobi