ref: babf901b4a508c3ec5d1f89655f10377bbdf9637
dir: /module/hash.m/
Hash: module{
PATH: con "/dis/lib/hash.dis";
fun1, fun2: fn(s:string,n:int):int;
HashVal: adt{
i: int;
r: real;
s: string;
};
HashNode: adt{
key:string;
val:ref HashVal; # insert() can update contents
};
HashTable: adt{
a: array of list of HashNode;
find: fn(h:self ref HashTable, key:string):ref HashVal;
insert: fn(h:self ref HashTable, key:string, val:HashVal);
delete: fn(h:self ref HashTable, key:string);
all: fn(h:self ref HashTable): list of HashNode;
};
new: fn(size:int):ref HashTable;
};