2011-10-08 9 views
2

저는 파이썬에서 dict/list/set comprehensions과 비슷한 것을 찾고 있습니다.F # map/set comprehensions

[x+2 for x in list if x > 10] 

및 F #으로

[for x in list do if x > 10 yield x+2] 

하지만 파이썬에서

, 당신은 할 수 있습니다 : : 파이썬에서 당신은 할 수

{x+2 for x in list if x > 10} 

이 설정을 생성하고,

{k: (v+10)/2 for k, v in list.items() if k > 5} 

은 Dicts를 생성합니다. F #에서 이런 종류의 구문에 대해 (함수면에서나 전체적으로 깔끔한면에서) 어떤 동등한 구문이 있습니까?

답변

2

기본적으로 F #에는 이와 같은 특수 구문이 없지만 배열 또는 목록 이해를 사용하고 결과를 표준 라이브러리에 제공된 함수에 전달할 수 있습니다.

let intSet = set [for x in list do if x > 10 yield x+2] 


let intMap = dict [for (x, y) in list do if x > 10 yield (x,y+2)]