0%

Ocamlでスタックを実装

Ocamlを用いてスタックを実装したい

タイトルの通りスタックの実装。
実装したのはスタックの生成、値の追加、取り出し機能のみ。
あと空の状態でPOPした時のエラー処理。
気が向いたら検索機能とかやるかも。

実装した

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
type 'a stack = {mutable s: 'a list}
exception EnptyStack
;;

let new_stack () = { s = [] };;

let push x t = x.s <- t :: x.s;;

let pop x =
match x.s with
hd::tl -> x.s <- tl; hd
| [] -> raise EnptyStack
;;

let s = new_stack ();;
push s 0;;
push s 1;;
push s 2;;
pop s;;
pop s;;
pop s;;
pop s;;

🚀