본문 바로가기
기타 언어/Ocaml

[Ocaml] Ocaml - Batteries 패키지 / Batset등 여러 자료구조 사용법

by 서상혁 2020. 4. 29.

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 linked list library

ocaml-batteries-team.github.io

이 링크에 Ocaml batteries 패키지의 모듈들의 종류와 사용법이 자세하게 나와있습니다.

 

대표적인 예시를 들자면,

BatSet : 집합

BatStack : 스택

BatHashtbl : 해쉬테이블

BatHeap : 힙

등등

 

이외에도 생각 이상의 다양한 모듈들이 있더군요.

 


 

사용 예시

저는 BatSet을 예시로 들어 보여드리겠습니다.

{1} 이라는 mySet 을 만들어

원소 2 를 추가해 {1,2} 를 만들고

 

{2,3,4} 라는 targetSet 집합과 union(합집합) 작업을 한다고 치면,

 

아까 링크했던 레퍼런스 사이트에 가서, BatSet 자료형 모듈 사용법을 확인합니다.

모듈의 input, output 타입과 사용법에 대해 나와있습니다.


 

원소 a 를 추가해 a 타입으로 된 set을 만든다.

 

 

이런 식으로 필요한 모듈들을 타입에 맞게 잘 사용해주시면 됩니다.

 


 

예시 정답)

 

let mySet = BatSet.add 2 (Batset.singleton 1) in  (* mySet = {1,2} *)

let result = BatSet.union mySet targetSet  (* result= {1,2,3,4} *)

 

728x90

댓글