For: 

Data QueryResult = NoResult | DatabaseError String | Results [String]

A close approximation I can think of is:

enum {NoResult, DatabaseError, Results};
struct QueryResult {
    int type;
    union {
        char* error_msg;
        struct {
            char** msgs;
            int len;
        } results;
    };
};

https://gist.github.com/1116058 is a simple use case of the code I suggested. I am not sure there is only 1 solution to this though. 

On Sat, Jul 30, 2011 at 1:45 PM, Christopher Howard <christopher.howard@frigidcode.com> wrote:
One of the things that I love about Haskell is the syntax for creating user defined types. E.g.:

Data QueryResult = NoResult | DatabaseError String | Results [String]

I can prototype an entire program around these self-made types and it is a lot of fun. Out of intellect curiosity, though: what would be the equivalent construction in C or C++? (Say, for the type defined above).

--
frigidcode.com
theologia.indicium.us

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners



--
John Harrison