任何人都可以告诉如何在 OCaml 中打印 Stack 数据结构?内置 Stack 类型定义如下:
type 'a t = { mutable c : 'a list }
exception Empty
let create () = { c = [] }
let clear s = s.c <- []
let push x s = s.c <- x :: s.c
let pop s = match s.c with hd::tl -> s.c <- tl; hd | [] -> raise Empty
let length s = List.length s.c
let iter f s = List.iter f s.c
想要打印并保留其元素,这意味着不要使用pop
and push
。
最好使用模式匹配来完成问题。
代码应该是这样的:
let print_stack stack =???