So I have been using F# for a while and studying a bit of Haskell on the side and I have realized I could rewrite the exact same function one of three different ways.
Either with implicit currying, explicit currying, or with lambda expressions.
//lambdas
let add' = fun x -> fun y -> x + y
//explicit currying
let add' x =
let subFunction y =
x + y
subFunction
//implicit currying
let add' x y = x + y
All of these have the signature int -> int -> int. All of them do the same thing.
Which one should I use in which case?