오보에블로그
1.Ocaml이란? 본문
728x90
간단하게 Ocaml은 함수형 프로그래밍 언어이다.
OCaml의 주요 특징
1)값중심, 계산형, 함수중심 프로그래밍 (Functionalprogramming)
2)정적 타입 시스템 (Static type system)
3)자동 타입 추론 (Automatic type inference)
4)데이터 타입, 패턴 매칭 (Datatypes and pattern matching)
5)다형성 (Polymorphism)
6)모듈 (Modules)
7)메모리 재활용 (Garbage Collection)
OCaml의 더 중요한 키워드는 '재귀'이다!
OCaml의 기본 구조
값 정의들의 나열:
let x1 = e1
let x2 = e2
식 e1,e2들 순차적으로 계산
인터프리터를 이용한 실행
$ eval $(opam env)
$ ocaml 을 치면
OCaml version 4.06.1
#
다음과 같이 나올것이다. # 뒤부터 원하는 식들을 바로 쓰거나,
# #use "filename.ml";; 을통해 파일을 실행할 수 있다.
조건식
if e1 then e2 else e3;;
함수식
fun x -> e
값에 이름 붙이기
let x = e1 in e2
함수식에 이름 붙이기
let square = fun x -> e;;
let add x y = e1;;
재귀함수 정의(rec)
let rec fact a =
if a = 1 then 1
else a * fact (a - 1);;
패턴 매칭(match)
let isabc c =
if c = ’a’ then true
else if c = ’b’ then true
else if c = ’c’ then true
else false
(*패턴 매칭 이용*)
let isabc c =
match c with
| ’a’ -> true
| ’b’ -> true
| ’c’ -> true
| _ -> false
튜플(tuple)
-순서가 있는 값의 묶음, 각 구성요소는 다른 타입을 가질 수 있다.
let x = (1, "one");;
리스트(lists)
-유한한 원소들의 나열, 순서가 중요. 리스트의 첫 원소를 head, 나머지를 tail 이라고 부른다.
[1;2;3;4;5];;
728x90
'Prev. > Lab' 카테고리의 다른 글
7. OCaml의 자잘한 문법 (0) | 2019.02.04 |
---|---|
6. OCaml 백준 9498 (0) | 2019.01.31 |
5.Ocaml 입출력 (0) | 2019.01.31 |
4. OCaml 모듈 실행 (0) | 2019.01.31 |
0.Ocaml 설치(개발환경 만들기) (0) | 2019.01.12 |