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

在F#函数中定义参数,使用元组更好吗?,f#,parameters,parameter-passing,F#,Parameters,Parameter Passing,一个简单的问题。。。定义一个通过元组接受多个参数的函数是否是一种良好的做法 我更好地解释自己: 我有一个功能: let myfunc par1 par2 = ...;; 这样好吗 let myfunc (par1, par2) = ...;; 当我说“它好吗”时,我是在说:它是好的实践吗?将参数传递给函数作为一种常见做法,这样做是否好 谢谢根据您的第一个示例,正常的F#风格是定义当前的函数,即非元组函数 使用咖喱可以做到这一点:(“部分应用程序”) 但是,如果将代码公开给.NET语言而不是F

一个简单的问题。。。定义一个通过元组接受多个参数的函数是否是一种良好的做法

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

let myfunc par1 par2 = ...;;
这样好吗

let myfunc (par1, par2) = ...;;
当我说“它好吗”时,我是在说:它是好的实践吗?将参数传递给函数作为一种常见做法,这样做是否好

谢谢

根据您的第一个示例,正常的F#风格是定义当前的函数,即非元组函数

使用咖喱可以做到这一点:(“部分应用程序”)

但是,如果将代码公开给.NET语言而不是F#,请坚持使用元组,因为除了从F#调用curried函数外,很难调用其他函数


编辑:从全新的F#Snippets网站:

啊,好的。。。现在我可以看到哪里是有用的元组符号。。。啊,一个问题对不起:那么第一个符号叫做咖喱?(我仍然无法接受您的答案,因为我必须等待5分钟:)。没错:在第一个符号中,您定义了一个curried函数;myfunc是咖喱的。当你像我在回答中那样称呼它时,你已经部分地应用了它。这些术语通常是混淆的:是的,我以前读过,这是非常酷的咖喱。。。非常感谢。@Andry Curry一直是Haskell中我最喜欢的部分,很高兴F#包括了它,至少部分是这样。@Orbling这是真的:在F#(和OCaml)中,有区别的联合构造函数是元组而不是Curry。
let myfunc par1 par2 = ...
let myfuncHello = myfunc "Hello"
myfuncHello "World" // same as: myfunc "Hello" "World"