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 :

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)))
et la fonction vrai :
vrai a = True
Dans ma logique, il applique la fonction au dernier element de la liste contenant le premier element du flot () qu'il concatene avec apply1 du reste. Or il me met une erreur de type :

(line 10): Type error in application
*** Expression : vrai 2 flot
*** Term : vrai
*** Type : d -> Bool
*** Does not match : a -> b -> c
Ou est l'erreur ? je comprend pas trop

Merci

Fred