2016-03-21 21 views
2

F#'a yeni yaşıyorum ve bir körleme örneğine ihtiyacım var.F # currying örneği

Körük mü yoksa kısmi uygulama mı?

let multiplyByThree x = 
    let multiply y = 
     y * x 
    multiply 3 

let result = multiplyByThree 3 // 9 

cevap

1

Kısmi Uygulama kısmi uygulanan fonksiyonu oluşturma, iyi bir proses, örneğin:

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 tek bir argüman alma fonksiyonları dizisinin çoklu bağımsız değişken içeren bir fonksiyonu temsil etmek yeteneği ve bir işlevi de döndürüyor. .NET fonksiyonları ile çalışıyorsanız

Ancak, bunlar tuples olarak savlarını, ör .:

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 
+0

Yani curried oluşturulan işlevi kabul? – lapots

+0

@ user1432980 Evet, düzenleme başlığına bakın. F # içinde, işlevler varsayılan olarak körelir – yuyoyuppe