[Haskell-cafe] Haskell integration with C/C++ (GSOC)
Holger Siegel
holgersiegel74 at yahoo.de
Thu Apr 5 09:21:55 CEST 2012
Am 05.04.2012 um 08:42 schrieb Brandon Allbery:
> On Thu, Apr 5, 2012 at 01:53, Sutherland, Julian <julian.sutherland10 at 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 that real tagged unions such as even Pascal gives you):
Not necessarily. The above type is equivalent to
type Tree = Maybe (Left, Right)
(modulo strictness, of course) and the C/C++ convention is to represent Nothing by a NULL pointer.
More information about the Haskell-Cafe
mailing list