|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Membre du Club
![]() Inscription : mai 2005 Messages : 130 ![]() |
il y a qqch que je n'arrive pas à comprendre dans Data.Map :
1. Code :
cela renvoie une valeur sous la forme d'une fonction ? ? ? 2. D'autre part , Code :
puis : Code :
effectivement : Code :
merci d'avance à ceux qui pourront m'expliquer ... |
||||||||
|
|
00
|
|
|
#2 | ||||||||||
|
Nouveau Membre du Club
![]() Inscription : octobre 2002 Messages : 36 ![]() |
Citation:
sous ghci, fromList [(1,etc...] devient l'équivalent de print $ fromList ... qui lui même est putStrLn $ show $ fromList .... Ensuite se pose la question : comment représenter une Map ? on peut imaginer plusieurs façons, mais les auteurs de Data.Map on retenu celle qui consiste a imprimer "fromList " puis la conversion de la map en liste. Ce qui est marrant c'est que quand tu tapes le fromList [etc...] ghci convertit la liste en Map, puis pour afficher le résultat fait aussitôt le travail inverse. Il n'y a pas à s'inquiéter de ca, en pratique on n'affiche pas une Map, on s'en sert pour faire des recherches. Citation:
En pratique dans un vrai programme, ghc dispose de suffisamment d'informations de contexte pour trouver un type précis pour une fonction du genre de myFromList, donc ca pose rarement un problème. Deux façons de contourner: 1) définir myFromList comme suit : let myFromList l = fromList l 2) virer la restriction de monomorphisme: :set -XNoMonomorphismRestriction let myFromList = fromList A propos de cette restriction, j'aurais du mal à expliquer la raison, mais elle est tellement débatue qu'une recherche de monomorphisme sur google devrait donner des réponses. En anglais , par contre. |
||||||||||
|
|
00
|
|
|
#3 | |
|
Membre du Club
![]() Inscription : mai 2005 Messages : 130 ![]() |
Citation:
Donc quand je construit mes fonctions plus compexes, et que je les évalues dans GHCi (parce que ça aide bien quand on est un peu perdu) et que ça me renvoie "fromList [(,.....),...], je sais qu'en réalité j'ai affaire à une structure Map, c'est bien ça ? |
|
|
|
00
|
|
|
#4 | |||||||||||
|
Nouveau Membre du Club
![]() Inscription : octobre 2002 Messages : 36 ![]() |
Citation:
Après tout, ce n'est que du texte. Donc pour en être sûr, il te faut interroger le type de ton expression; en tapant sous ghci :t mon_expression_complexe. P.S, précision supplémentaire au sujet du problème: Code :
Code :
Ce sont ces règles de "type par défaut" qui sont responsables sous ghci du résultat suivant: Code :
Code :
Code :
etc, etc, etc. |
|||||||||||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : mai 2005 Messages : 130 ![]() |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com