我是F#
的新手,我需要一个currying的例子。
是currying还是部分申请?
let multiplyByThree x =
let multiply y =
y * x
multiply 3
let result = multiplyByThree 3 // 9
答案 0 :(得分:1)
部分应用程序是创建部分应用功能的过程,例如:
let sum x y = x + y // sum is a curried function, it's default in F#
let sum4 x = sum 4 x // partial application
Currying是一种将具有多个参数的函数表示为一系列函数的能力,这些函数采用单个参数并返回一个函数。
但是,如果你正在使用.NET函数,他们会接受tuples的参数,例如:
let sum (x,y) = x + y
// let sum4 x = sum 4 x // can't do that!
let sum4 x = sum (4,x) // this is valid. passing a tuple