2012-07-20 4 views
1

사용하여 튜플 기능을 적용 지도?약간의 2 개의 인수를 취하는 함수 감안할 때 List.map

myList |> List.map ((||>) f)   //doesn't work 
myList |> List.map (fun x -> (||>) x f) //boring 

나는 ||>에 필요한 인수를 뒤집을 필요가있는 것처럼 보입니다.

+0

인가를 || > 맞춤 운영자입니까? http://msdn.microsoft.com/en-us/library/dd233228.aspx –

+1

에있는 F # 기호 및 연산자 참조에서 볼 수 없습니다. @MarkPattison은 기본 제공 연산자입니다 ('a *'b -> ('a ->'b -> 'c) ->'c) ' –

+1

@ 마크 : http://msdn.microsoft.com/en-us/library/ee340237.aspx – ildjarn

답변

10
myList |> List.map ((<||) f) 
6

@desco와 마찬가지로 (<||)을 사용하는 것이 가장 짧은 답변입니다. 당신은 쉽게 uncurry를 사용하여 점없는 스타일로 작성할 수 있습니다

let inline uncurry f (x, y) = f x y 
myList |> List.map (uncurry f) 

또는 더 기괴한 내장 기능 :

myList |> List.map ((|>) f << (||>)) 

증명 :

(|>) f << (||>) 
<=> fun x -> ((|>) f << (||>)) x 
<=> fun x -> ((|>) f) ((||>) x) 
<=> fun x -> (|>) f ((||>) x) 
<=> fun x -> f |> ((||>) x) 
<=> fun x -> (||>) x f 
+0

참조. –

관련 문제