2016-06-24 2 views
2

튜플을 별도의 매개 변수로 변환하고 변수에 바인딩하는 대신 함수에 넣는 방법이 있습니까?F # 튜플을 함수 매개 변수로 변환

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

대신

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

감사와 같은

뭔가.

+2

을 가질 수 있습니다 다음

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

입니다 |||>에 대한 표준 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

하나의 해결책은 함수 정의에서 패턴 일치를 사용하는 것입니다.

은 당신이 사용할 수있는 2 ~ 3 회원 튜플에 대한

let inline funof5 (x1,x2,x3,x4,x5) f = f x1 x2 x3 x4 x5 
관련 문제