在F#函数中定义参数,使用元组是否更好?

And*_*dry 5 parameters f# parameter-passing

一个简单的问题......通过元组定义一个接受多于1个参数的函数是一种好习惯吗?

我更好地解释自己:我有一个功能:

let myfunc par1 par2 = ...;;
Run Code Online (Sandbox Code Playgroud)

这样好吗?

let myfunc (par1, par2) = ...;;
Run Code Online (Sandbox Code Playgroud)

当我说"它好"时,我说:这是好的做法吗?这样做总是很常见的做法将参数传递给函数吗?

谢谢

Tim*_*son 5

正常的F#样式是根据你的第一个例子定义curried函数,即非tupled.

Currying让你这样做:("部分应用程序")

let myfunc par1 par2 = ...
let myfuncHello = myfunc "Hello"
myfuncHello "World" // same as: myfunc "Hello" "World"
Run Code Online (Sandbox Code Playgroud)

但是,如果将代码暴露给F#以外的.NET语言,请坚持使用tupling,因为除了F#之外很难调用curried函数.

编辑:来自全新的F#Snippets网站:http://fssnip.net/I