OCaml에서의 골프 팁


10

다른 '언어 xyz의 골프 팁'의 구색에서 영감을 얻었습니다. 평소와 같이 OCaml에만 해당되며 일반적으로 프로그래밍하지 않는 팁만 제안하십시오. 답변 당 하나의 팁을 부탁드립니다.


1
몇 가지 명백한 팁을 추가해도 될까요?
Édouard

답변:


4

일치 대신 함수 사용

let rec f=function[]->0|_::t->1+f t

보다 짧다

let rec f x=match x with[]->0|_::t->1+f t

3

begin […] end를 사용하지 마십시오

이:

begin […] end 

항상 이것과 동의어입니다 :

([…])

2

여러 변수 또는 함수를 한 번에 정의

튜플 덕분에 한 번에 여러 변수를 정의 할 수 있습니다. 그리고 기능은 일류 시민으로서…

let f,g=(fun x->x+1),fun x->2*x

그러나 다음과 같이 쓸 수는 없습니다.

let f,g=(fun x->x+1),fun x->2*f x

오류 : 언 바운드 값 f

불행히도 다음을 사용하여 문제를 피할 수 없습니다 rec.

let rec f,g=(fun x->x+1),fun x->2*f x

오류 : 변수 만 왼쪽으로 허용됩니다 let rec


2

공격 curryied 기능을

OCaml의 기능은 카레입니다. 때때로 그 사실을 악용하는 것이 유용 할 수 있습니다.

let n y=f x y

쓸 수있다

let n=f x

산술 연산이 필요한 경우 괄호로 묶어 표준 접두사 함수처럼 동작 할 수 있습니다. (+), (-)

let n=(+)1;;
n 3;;

- : int = 4

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.