Warum verwendet Forth IF-Anweisung THEN ... anstelle von ENDIF?Warum verwendet Forth IF-Anweisung THEN ... anstelle von ENDIF?
Ich implementiere eine (nicht konforme) Forth-Compiler-Sache. Grundsätzlich scheint mir die Forth-Syntax bei IF-Anweisungen sehr kontraintuitiv zu sein.
IF ."Statement is true"
ELSE ."Statement is not true"
THEN ."Printed no matter what;
Warum ist die Endung Aussage ein THEN
? Das macht die Sprache extrem komisch für mich. Für meinen Compiler überlege ich, es zu etwas wie ENDIF
zu ändern, das natürlicher liest. Aber was war der Grund dafür, IF-THEN-Statements überhaupt erst einmal zu hinterfragen?
Glaubt jemand, dass dies besser für programmers.se geeignet wäre? – Earlz
Sie müssen Chuck Moore fragen. Niemand sonst wird die Antwort wissen. [Hier steht er, als er "Das irgendwann kritisierte Postfix-Konditional" einführte (http://www.colorforth.com/HOPL.html). –
Wenn ich nicht viel falsch bin, gibt es (oder vielleicht waren) Implementierungen (kann mich nicht ganz erinnern, was im Moment, Entschuldigung) wo ENDIF als eine Art Synonym von THEN definiert wurde, was bedeutet, dass Sie nicht zuerst sind die Sequenz von "IF-ELSE-THEN" etwas zu ungewöhnlich zu finden. Ich, ich hatte nie ein Problem damit. (Ich denke, ich sah eine Erklärung dafür in einem Buch vor langer Zeit, und es war in der Art von @AshleyF hat in seiner Antwort gesagt.) –