FS0002: Függvény váratlan

Ez az üzenet akkor jelenik meg, ha egy lambda paraméterként van átadva, ahol egy érték várható.

A következő kód bemutatja a hibát:

let ignoreInt (f: int) = ()

do ignoreInt (fun x -> x + 1)

Ez a kód a következő kimenetet eredményezi:

error FS0002: This function takes too many arguments, or is used in a context where a function is not expected

Itt a típus a függvény függvényeként ignoreIntint -> unitvan definiálva, de ehelyett egy lambda típusú int -> int típus lesz átadva. Mert int -> int nem ugyanaz a típus, mint int az üzenet.

Az üzenet kijavításához a kódot úgy kell módosítani, hogy a függvénynek egy nem lambda argumentumot adjon át, ahogyan az ebben a példában is látható:

let ignoreInt (i: int) = ()

do ignoreInt 1