Ocaml 간단 정리 OCaml
2010.02.23 13:40 Edit
재귀적함수
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;;
- Tag :
- Ocaml
