Creating Delegates With Lambda Expressions in F#
- by Matt H
Why does...
type IntDelegate = delegate of int -> unit
type ListHelper =
static member ApplyDelegate (l : int list) (d : IntDelegate) =
l |> List.iter (fun x -> d.Invoke x)
ListHelper.ApplyDelegate [1..10] (fun x -> printfn "%d" x)
not compile, when:
type IntDelegate = delegate of int -> unit
type ListHelper =
static member ApplyDelegate (l : int list, d : IntDelegate) =
l |> List.iter (fun x -> d.Invoke x)
ListHelper.ApplyDelegate ([1..10], (fun x -> printfn "%d" x))
does?
The only difference that is that in the second one, ApplyDelegate takes its parameters as a tuple.
Error 1 This function takes too many arguments, or is used in a context where a function is not expected