De temps en temps, je reçois une erreur qui ressemble à ceci:F # Signature Comprendre: « l'opérateur -> et compilateur erreurs »
opgave.fsx(28,14): error FS0001: This expression was expected to have type
'int'
but here has type
'int -> int'
opgave.fsx(33,35): error FS0001: This expression was expected to have type
'int list'
but here has type
'int -> int list -> int list'
Ce qui me confond est ce que cela signifie par l'opérateur ->
? comme je le comprends alors de la première erreur alors on attend un int mais on lui donne une expression qui prend un int et retourne un autre int. Peut-être que je ne comprends pas? Si j'ai raison, quel est le problème exactement? Je pourrais jurer que j'ai déjà fait quelque chose de similaire.
le code de ces erreurs sont basées sur se présente comme suit:
member this.getPixelColors(x,y,p) : int list =
let pixel = image.GetPixel(x,y)
let stringPixel = pixel.ToString()
let rec breakFinder (s:string) (h:int) =
match s.[h] with
|',' -> s.[9..(h-1)] |> int
|_ -> (breakFinder(s (h+1))) // this is line 28
let rec yello x y p =
match x with
|l when l = imageW -> match y with
|k when k = imageH -> [email protected][(breakFinder stringPixel 0)]
|_ -> yello((0)(y+1)([email protected][(breakFinder stringPixel 0)])) // this is line 33
|_ -> yello((x+1)(y)([email protected][(breakFinder stringPixel 0)])) // there is an error in this line aswell identical to line 33
yello 0 0 []
Quelqu'un peut-il me faire comprendre donc je serai en mesure de traiter ce moi-même à l'avenir?
Si vous ajoutez les numéros de ligne, ou peut-être mettre des commentaires à côté de la lignes qui correspondent aux erreurs, cela nous aiderait à identifier les problèmes ici. – Stuart
J'ai ajouté des commentaires dans le code. Il est dans tous les appels récursifs – Nulle
Merci, cela correspond à mon hypothèse. S'il vous plaît essayer ma réponse et laissez-moi savoir si cela aide. – Stuart