From
I wondered about Head. Here everything looks logic ...
f= Expr(x=2);
Substitute(NameExpr(f),Expr(x), Expr(y));
Head(f);Head is not like Substitute, I can directly use the function name as an argument - and Head returns the head of the expression: Assign()
After checking some other functions which "don't evaluate their argument":
Expr(x=2); // x=2
Name Expr(x=2); // x=2let's check the result for
Head(x=2)which is "2" - i.e. the result after evaluating the argument?!?! why is it not assign()?
Another question:
Why does Type evaluate its argument?
Type(Char(1)) // String !!