code: 9ferno

ref: c04f70e2bb4a02655bb8a6247a8f07f75ff431bd
dir: /module/hash.m/

View raw version
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{
		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;