On 27/09/2014 11:26 p.m., ponce wrote:
I'm dabbling with Scheme interpreter and ultimately I would need to
declare the following types.
--------------
struct Function
{
Environment env;
Atom params;
Atom body_;
}
// An atom is either a string, a double, a symbol, a function or a list
of atoms
alias Atom = Algebraic!(string, double, Symbol, Function, This[]);
--------------
These definitions can't work since Function and Atom need each other in
this recursive definition.
How to get out of this trap?
Do I have to drop Algebraic and go back to manual tagged unions?
Converting Function to a class. No where near ideal. But it'll work.