Perché Forth usa l'istruzione IF THEN ... invece di ENDIF?Perché Forth usa l'istruzione IF THEN ... invece di ENDIF?
Sto implementando una cosa del compilatore Forth (non conforme). Fondamentalmente, la sintassi di Forth sembra molto controintuitiva per quanto riguarda le dichiarazioni IF.
IF ."Statement is true"
ELSE ."Statement is not true"
THEN ."Printed no matter what;
Perché è la fine di un comunicato THEN
? Questo rende la lingua estremamente strana per me. Per il mio compilatore, sto considerando di cambiarlo in qualcosa come ENDIF
che legge più naturale. Ma quale era la logica alla base delle dichiarazioni IF-THEN al contrario?
Qualcuno pensa che questo sarebbe più adatto per programmers.se? – Earlz
Dovrai chiedere a Chuck Moore. Nessun altro saprà la risposta. [Qui afferma quando ha introdotto "Il condizionale postfatto da criticare a volte"] (http://www.colorforth.com/HOPL.html). –
Se non mi sbaglio molto, ci sono (o forse erano) implementazioni (non ricordo abbastanza quale al momento, mi dispiace) dove ENDIF è stato definito come una sorta di sinonimo di THEN, il che significa che non sei il primo trovare la sequenza di "IF-ELSE-THEN" un po 'troppo insolita. Io, non ho mai avuto problemi con questo, però. (Penso di averne visto una spiegazione in qualche libro molto tempo fa, ed è stato proprio sulla falsariga di @AshleyF nella sua risposta.) –