본문 바로가기

ocaml6

[Ocaml] Ocaml - Batteries 패키지 / Batset등 여러 자료구조 사용법 Ocmal 에는 여러 자료구조 형태를 지원하는 Batteries 패키지가 있습니다! Batteries를 통해 Ocaml 에서도 스택, 집합(set), 테이블 등 여러 자료구조 이용이 가능합니다. Batteries 설치 opam 이라는 패키지 매니저를 이용하여 쉽게 설치가 가능합니다. $ opam install batteries Batteries 사용법 사용하고자 하는 코드 상단에 open Batteries 를 추가해주시면 Batteries 내부의 모듈들이 사용이 가능합니다. https://ocaml-batteries-team.github.io/batteries-included/hdoc2/ Batteries user guide A mutable, imperative, circular, doubly link.. 2020. 4. 29.
[Ocaml] Ocaml print / 출력 / print_endline / Ocaml 출력 종류 print_startline() : \n 을 출력한다. () 안에는 unit 타입이 들어가야한다. print_endline("내용") : 파이썬에 print , 자바의 println 과 비슷한 함수로 내용을 출력 한 후 줄바꿈이 자동으로 들어간다. 내용 타입은 반드시 string 타입을 써야한다. print_타입명 (내용) : 타입에 맞는 값을 출력한다. 예) print_int(13) , print_char('a') Ocaml 출력 사용 Ocaml 에서는 print 관련된 구문도 함수 자체로 여겨진다. 따라서 let prt = print_endline("abc") in 을 쓰면 prt 이 불러와질때마다 abc 를 출력하게 되는것이다. 주로 출력만 할때는 와일카드 '_' 을 이용해 l.. 2019. 10. 27.
[Ocaml] 모듈이란? / 모듈 사용법 / module 모듈이란? 관련있는 코드들의 모음을 뜻합니다. 다른 언어에서는 import 를 하듯 Ocaml 도 #load 를 통해 라이브러리를 로드하고 Open으로 모듈을 실행합니다. 우리가 작성하고 있는 파일도 그 자체로 모듈이 될 수 있습니다. 예를들어 test.ml 이라는 파일을 작성하고 있다면 test라는 모듈로서 사용이 가능한 것입니다. 모듈 사용 및 선언 모듈은 module 모듈이름 = struct 내용 fun1 x y = ~~ fun2 x y z = ~~ - 예시 end 로 직접 구현이 가능합니다. 모듈안에 모듈에 맞는 함수들을 만들어주면 모듈이름을 통해 함수로 접근이 가능합니다. - Ex) 모듈이름.fun1 5 2;; 또한 sig val (signitare value) 문을 통해 모듈 타입을 정해줄 수.. 2019. 10. 7.
[Ocaml] Type 선언 / Type 이란? Type 이란? 말 그대로 우리가 쓰는 int, float, string 같은 비슷한 맥락의 변수들의 카테고리 집합을 의미한다. 하지만 우리가 쓰는 이런 기존 타입들도 누군가의 설계에 의해 만들어진 것이다. 예를들면 '2 나 3 혹은 79 같은 소수점이 없는 정수들은 int 라는 type 으로 정의하자.' 라고 누가 이미 선언해놓은 것이다. Ocaml은 개발자가 직접 Type 선언이 가능하다. 기본 제공 Type 사용 예시: organ 이라는 신체기관을 의미하는 타입을 만들었다. | 는 여러 타입들을 나열할 때 사용되고 of 뒤에 나오는 것이 인자 라고 생각하면 된다. (인자 또한 타입을 가진다.) 예를들어 앞으로 Eye나 Mouth라는 것이 나오면 이제 Ocaml 에서는 organ type 으로 간주한.. 2019. 10. 2.
[Ocaml] if 문 / if 표현식 / 함수형 프로그래밍 Ocaml 에서의 if 는 if 조건1 then 조건1 만족할 떄의 표현 else 조건1 만족 안할때의 표현 이런 방식으로 사용이 됩니다. 예시) 사실상 Ocaml에서의 if문은 표현식(expression) 이기 때문에 조건 ? 만족O표현 : 만족X_표현 과 같은 느낌이라고 합니다. ( Python에서의 ? 느낌) = boolean-condition ? expression :other-expression -> 근데 저는 이게 무슨말인지 잘 모르겠어서 이해하신분은 댓글 부탁드립니다.. * 참고로 else if 도 가능합니다. if 조건1 then 조건1 만족할 떄의 표현 else if 조건2 then 조건만족할 떄의 표현 else 조건1,2 둘다 만족 안할때의 표현 출처 : https://ocaml.org.. 2019. 9. 27.
[Ocaml] match / 함수형 프로그래밍 Ocaml 에서 무지하게 많이 사용되는 match ~ with 입니다! 다른 프로그래밍 언어에서는 보이지 않는 함수평 프로그래밍 언어의 특별한 구문이죠~ 예시를 먼저 봅시다. 결과값 match int1 은 int1 이 어떤 값일지에 따라 return 할 값을 정해줍니다. | (shift+\) 를 통해 조건들을 달 수 있습니다. 단순히 0이나 1 같은 숫자나 문자 하나가 아닌 여러가지 형들이 가능한데요, 이는 다른 게시글에서 천천히 다뤄봅시다. 그리고 | 이후에 0 과 1을 통해 조건을 정해준 순간 one_zero_check 이라는 fucntion은 int값만을 변수로 받는 함수가 됩니다. ( int1 자리에 정수를 제외한 다른값으로 하면 에러가 뜬다는 말입니다! ex) one_zero_check "one.. 2019. 9. 27.