Version française
Home     About     Download     Resources     Contact us    
Browse thread
Defining type that requires hashtables with recursive definition
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Hugo Ferreira <hmf@i...>
Subject: Defining type that requires hashtables with recursive definition
Hello,

I am attempting to define a type so:

type node =
   | Node of links
   | Leaf of int

And I want to implement links as a
hashtable whose keys and values are
also of type node. Note that the idea
is to use object address comparison
for the keys so:

module H =
   struct
     type t = node
     let equal (e1:node) (e2:node) = (==) e1 e2
     let hash (e:node) = Hashtbl.hash e
   end

module J = Hashtbl.Make( H )

However this requires a recursive definition on
the hashtable. How may a declare node and hashtable
to allow this?

TIA,
Hugo F.