标准库示例
参见: Comparison of Standard Containers
以stack为例
编写如下一行代码即可看见Stack库中的函数定义。
module MyStack = Stack;;
创建一个自己的stack
let myStack = Stack.create ();;
注意括号匹配函数中的unit参数,这是必须的。
然后即可进行你所希望的push以及pop等操作了。
Stack.push “hello” myStack;;
稍微复杂一些的例如Set,使用的时候需要定义类型,用到了functor。
如下代码定义了一个string类型的集合模块:
module MySet = Set.Make(String);;
然后可以像使用Stack那样使用你的集合了,例如定义一个空的集合:
let mySet = Myset.empty;;
注意集合分为集合本身的类型和集合中元素的类型。