Bonjour,
J'ai un petit probleme avec une fonction toute bête sur un flot infini.
Supposons une fonction apply qui prend en parametre une fonction unaire et qui l'applique à toutes les valeurs d'un flot (infini dans notre cas) passé en parametre.
Voila le type de la fonction :
(a -> b) -> [a] -> [b]
Or j'ai essayé ceci :
et la fonction vrai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 apply1 fonction flot = (fonction (last(take (1 flot)))): (apply1 (fonction takeWhile (vrai 2 flot)))
Dans ma logique, il applique la fonction au dernier element de la liste contenant le premier element du flot (vrai a = True) qu'il concatene avec apply1 du reste. Or il me met une erreur de type :
Ou est l'erreur ? je comprend pas trop(line 10): Type error in application
*** Expression : vrai 2 flot
*** Term : vrai
*** Type : d -> Bool
*** Does not match : a -> b -> c
Merci
Fred
Partager