【发布时间】:2019-12-31 23:49:35
【问题描述】:
我的节点类型如下:
type position = float * float
type node = position
我编写这些模块是为了在我的地图中使用节点作为键:
module MyMap =
struct
type t = node
let compare n1 n2 =
if n1 = n2 then 1
else 0
end
module Dist = Map.Make(MyMap)
然后我创建了一个空地图:
let mapTest = Dist.empty;;
let mapTest = Dist.add (1.,1.) 1. mapTest;;
我得到这样的地图长度:
Dist.cardinal mapTest;;
- : int = 1
我尝试添加另一个元素:
let mapTest = Dist.add (2.,2.) 2. mapTest;;
但是当我使用 Dist.cardinal mapTest 时,我的 Map 长度仍然为 1
更令人惊讶的是,当我运行时:
Dist.find (1.,1.) mapTest;;
- : float = 2.
所以现在我对发生了什么或我做错了什么一无所知。
我的目标是能够使用地图、添加绑定等。
有什么想法吗?
谢谢
【问题讨论】:
标签: dictionary ocaml