Domanda

Dato il seguente codice:

let DisplayImpl logger data =
    data |> Seq.iter logger
    printfn ""

let Working =
    DisplayImpl (printfn "%O") [1;2;3]
    DisplayImpl (printfn "%O") ["a";"b";"c"]

let NotWorking display =
    display (printfn "%O") [1;2;3]
    display (printfn "%O") ["a";"b";"c"]
                            ~~~ ~~~ ~~~

L'ultima riga fornisce l'errore: This expression was expected to have type int but here has type string

Pensavo che potesse funzionare, ma non lo fa:

let StillNotWorking (display: ('a -> unit) -> seq<'a> -> unit) =

La mia domanda è: come si definisce la funzione di notworking in modo che il parametro di visualizzazione rimanga generico all'interno della funzione?

Nessuna soluzione corretta

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