Ocaml 간단 정리 OCaml

재귀적함수 
in문
# let test = 
let base = 10 * 10 in base * 2 ;;
 함수 test에서 base는 함수 안의 지역변수가 된다.

# let test_cal2 =
  let base2 x = x * x in 
  (base2 10);;
val test_cal2 : int = 100
함수 test2는 함수내의 base2라는 함수를 사용한다.

변수 선언
#let x=2 and y=1;;

다형
#let pi = 3.1415926535;;
#let c_area(r) = r *. r *. pi;;
#let pi = 1;;
#let area = c_area 2.0;; (*float type pi*)
#let area_t r = pi * r;;
#let t_area = area_t 2;; (*int type pi*)

위의 예에서 pi가 2번 정의되었으나 함수호출시 int형이나 float형에 따라 
적용되는 pi 가 달라진다.

패턴매치 
#let (a,b,c,d) = tuple;;
wildcard pattern
#let (a,_,c,_) = tuple;;
_에 매치한 내용은 버린다.

 tupel함수
 # let avg (x, y) = (x +. y) /. 2.0;;
 # let avgval (20.1, 17.3);;
 # let rst avgval;;

 팩토리얼 재귀
 #let rec fact n = (* recursive *)
       if n =1 then 1 else fact(n-1) * n;;

함수실행을 추적해볼수있다.
# #trace fact;;
# #untrace fact;;

Share
Tag :

Leave Comments



T-NAVI