Hallo,
x = if(expr){}
sieht dann natürlich syntaktisch anders aus, aber Sprachen wie LISP u.Ä., in denen jeder Ausdruck zu einem Resultat ausgewertet wird, machen das so.
Das macht im Grunde genommen jede Programmiersprache: Jede Anweisung wird als Wahr oder Falsch bewertet. D.h., daß jede Anweisung einen wahren Wert ergeben muss sonst evaluiert der Code nicht. So ist x=false;
eine wahre Aussage, aber der Wert in x ist nicht wahr. x=false;
Wird also bewertet obwohl es kein Ausdruck sondern eine Zuweisung ist. MfG
PS: Kurz gesagt muss in jeder Zeile was Wahres stehen.