문제

가장 자주 사용하는 두 가지 대안 중 어느 것이 더 "관용적"입니까?

  1. f arg (obj.dostuff ())
  2. 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]

"불확실한 유형의 대상에 대한 조회"에 대한 불만.

나는 ()를 훨씬 더 자주 사용하지만, 그것은 단지 선호도, 나는 <| 더 아이디어이지만 습관별로 ()을 사용합니다.

가능할 때마다 왼쪽에서 오른쪽으로 읽기 때문에 |>를 선호합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top