Question sur Data.fromList
il y a qqch que je n'arrive pas à comprendre dans Data.Map :
1.
Code:
1 2 3
| ghci > fromList [(1 ,2) ,(3 ,4) ,(3 ,2) ,(5 ,5)]
fromList [(1,2),(3,2),(5,5)]
it :: Map Integer Integer |
pourquoi la valeur renvoyée est-elle "fromList ..." alors que fromList, de toute évidence, n'est pas un constructeur (pour qui la majusculle initiale est obligatoire).
cela renvoie une valeur sous la forme d'une fonction ? ? ?
2. D'autre part ,
Code:
1 2
| ghci > :t fromList
fromList :: (Ord k) => [(k, a)] -> Map k a |
ok, jusque là ça va ...
puis :
Code:
1 2
| let myFromList = fromList
myFromList :: [((), a)] -> Map () a |
On sent bien qu'on ne va pas aller loin avec un Map ()
effectivement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
ghci> myFromList [(1 ,2) ,(3 ,4) ,(3 ,2) ,(5 ,5)]
<interactive>:1:37:
No instance for (Num ())
arising from the literal `5' at <interactive>:1:37
Possible fix: add an instance declaration for (Num ())
In the expression: 5
In the expression: (5, 5)
In the first argument of `myFromList', namely
`[(1, 2), (3, 4), (3, 2), (5, 5)]' |
Pourquoi ne peut-on pas créer myFromList de cette manière ?
merci d'avance à ceux qui pourront m'expliquer ...