2010-12-13 7 views
5

簡単な質問... 1組以上のパラメータを受け入れる関数をタプルで定義するのは良い習慣ですか?F#関数のパラメータを定義すると、タプルを使うほうが良いでしょうか?

私はより良い自分自身を説明します。 私は機能を持っている:

let myfunc par1 par2 = ...;; 

はへそうにそれが良いですか?

let myfunc (par1, par2) = ...;; 

私は「いいですか」と言います:それは良い練習ですか?それは関数にパラメータを渡すための一般的なプラクティスとしてこれをいつも行うのがいいですか?

答えて

5

通常のF#のスタイルはつまり、あなたの最初の例に係る非tupled、カレー関数を定義することです、ありがとうございました。しかし(「部分適用」)

let myfunc par1 par2 = ... 
let myfuncHello = myfunc "Hello" 
myfuncHello "World" // same as: myfunc "Hello" "World" 

、それは除いカリー化関数を呼び出すのは難しいので、あなたは、tuplingに固執、F#の以外の.NET言語にあなたのコードを公開する場合:

カリー化は、あなたがこれを行うことができますF#から。

編集:ブランドの新しいF#スニペットサイトからは:ああ...一つの質問申し訳ありません便利tupled表記ですhttp://fssnip.net/I

+0

OKああ...今私が見ることができますので、最初の表記は、カリー化と呼ばれていますか? (私は5分待たなければならないので、私はあなたの答えを受け入れることができません:))。 – Andry

+1

そうです。最初の表記では、カルト機能を定義しています。 myfuncはカレーです。あなたが私の答えでしたようにそれを呼び出すと、部分的にそれを適用しました。これらの用語は、一般的に混乱しています:http://en.wikipedia.org/wiki/Currying#Contrast_with_partial_function_application –

+0

ええ、私は直前にそれを読んだことがあります、それは非常にクールなカリンです...ありがとう。 – Andry

関連する問題