Domanda

Ho una funzione F#:

let removeEven (listToGoUnder : _ list) =
    let rec listRec list x =
        match list with
        | [] -> []
        | head::tail when (x%2 = 0) -> head :: listRec (tail) (x+1)
        | head::tail -> listRec (tail) (x+1)

     listRec listToGoUnder 0

Rimuove tutti gli elementi in un indice uniforme in un elenco. Funziona se do un po 'di imput dell'elenco, come removeEven ['1';'2';'3'] ottengo ['1';'3'] che dovrei. Ma quando inserisco un elenco vuoto come parametro, ricevo questo errore:

stdin (78,1): errore FS0030: limitazione del valore. Il valore "esso" è stato dedotto di avere un tipo generico

Val it: '_a Elenco o definisci' It 'come un semplice termine di dati, rendilo una funzione con argomenti espliciti o, se non si intende essere generico, aggiungi un'annotazione di tipo.

Aiuto, qualcuno?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top