public string AsString()
{
// TODO Refactor to String Builder
string result = "#(";
foreach (IExpression expression in this.expressions)
{
if (result != "#(")
result += " ";
if (expression is SymbolExpression)
result += ((SymbolExpression)expression).Symbol;
else if (expression is ArrayExpression)
result += expression.AsString().Substring(1);
else
result += expression.AsString();
}
return result + ")";
}