문제
가장 자주 사용하는 두 가지 대안 중 어느 것이 더 "관용적"입니까?
- f arg (obj.dostuff ())
- f arg <| obj.dostuff ()
해결책
전반적으로, 나는 하나 또는 다른 하나가 더 관용적이라는 것을 모른다.
개인적으로, 내가 사용하는 유일한 시간 <| "Raine"과 함께합니다.
raise <| new FooException("blah")
그 외에도 나는 항상 Parens를 사용합니다. 대부분의 F# 코드는 Curried 함수를 사용하므로 일반적으로 "추가"파렌을 의미하지는 않습니다.
f arg (g x y)
비 커리기 기능과 생성자에 들어가면 덜 예쁘게 시작되기 시작하지 않을 때입니다.
f arg (g(x,y))
우리는 아마도 적어도 가능할 것입니다 고려하다 F# 언어 규칙을 변경하여 고전증 응용 프로그램이 훨씬 더 단단히 바인딩되도록합니다. 지금 바로
f g()
구문 분석
f g ()
그러나 많은 사람들이 그것을 구문 분석하기를 원합니다.
f (g())
(원래 질문의 동기 부여 사례). 이에 대한 강한 의견이 있다면이 응답에 대한 의견을 남겨주세요.
다른 팁
왼쪽에서 오른쪽으로 인식 추론이 작동하기 때문에 사용의 보너스입니다. |>
F#이 함수의 인수 유형을 유추 할 수 있다는 것입니다.
고안된 예로
[1; 2; 3] |> (fun x -> x.Length*2)
잘 작동하지만
(fun x -> x.Length*2) [1; 2; 3]
"불확실한 유형의 대상에 대한 조회"에 대한 불만.
나는 ()를 훨씬 더 자주 사용하지만, 그것은 단지 선호도, 나는 <| 더 아이디어이지만 습관별로 ()을 사용합니다.
가능할 때마다 왼쪽에서 오른쪽으로 읽기 때문에 |>를 선호합니다.
제휴하지 않습니다 StackOverflow