2016-06-24 3 views
2

タプルを別々のパラメータに変換し、変数にバインドする代わりに関数に入れる方法はありますか?F#タプルを関数のパラメータに変換する

代わり

let ugly funOf5 tupleOf5 = 
    let (number1, number2, number3, number4, number5) = tupleOf5 
    funOf5 number1 number2 number3 number4 number5 

感謝の

let nice funOf5 tupleOf5 = 
    funOf5 (Tuple.toParameters tupleOf5) 

ような何か。

+2

を持つことができ、その後

let inline (|||>) (x1,x2,x3) f = f x1 x2 x3 

ある|||>のためのstd libにソリューションに触発され、 '<||'と '< ||| '、https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/operators.%5b-%5bhh-%5d%5b%27t1%2c%27t2%2c%27u%5dfunction- %5bfsharp%5d –

+0

@John Palmerああ、ありがとう、私は引数がパイプを使用するために(arg1、arg2)として記述されるべきであることを知っていましたが、それもタプル自体であるとは思わなかった – Feofilakt

+0

注意:それは '<||'ではなく、 '<|' –

答えて

2

解決策の1つは、関数定義でパターンマッチングを使用することです。

この

は、あなたが使用できる2つのまたは3メンバーのタプルのために

let inline funof5 (x1,x2,x3,x4,x5) f = f x1 x2 x3 x4 x5 
関連する問題