
On Thu, Apr 5, 2012 at 03:21, Holger Siegel
On Thu, Apr 5, 2012 at 01:53, Sutherland, Julian < julian.sutherland10@imperial.ac.uk> wrote: data Tree = Node Left Right | Leaf
Could be converted to a struct in C/C++:
struct Tree { struct Tree* left; struct Tree* right; };
Shouldn't this actually be a tagged union? Not that they exist as such in C/C++, but are easy enough to emulate (minus the extra type checking
Am 05.04.2012 um 08:42 schrieb Brandon Allbery: that real tagged unions such as even Pascal gives you):
Not necessarily. The above type is equivalent to
type Tree = Maybe (Left, Right)
But that is not the type being translated. (Also, I would still consider translating Maybe as something other than a NULL pointer, just to enable sanity checking.) -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms