17 lines
819 B
QBasic
17 lines
819 B
QBasic
|
|
10 REM A truth value carries its payload in boolvalue, not floatval. The three
|
||
|
|
20 REM numeric operators were `if ( INTEGER ) ... else <treat as float>`, and
|
||
|
|
30 REM that else was a catch-all rather than a float branch -- so a truth value
|
||
|
|
40 REM on the LEFT computed 0 - 1 into a field nothing reads, kept its BOOLEAN
|
||
|
|
50 REM type, and printed `true` instead of -2. Silent, and wrong twice over.
|
||
|
|
60 A# = 1
|
||
|
|
70 PRINT (A# == 1)
|
||
|
|
80 REM On the RIGHT it stays legal and stays -1, which is the same property that
|
||
|
|
90 REM lets AND and OR double as logical operators. Refusing it here would have
|
||
|
|
100 REM broken every condition in the language.
|
||
|
|
110 PRINT 5 - (A# == 1)
|
||
|
|
120 PRINT 5 * (A# == 1)
|
||
|
|
130 PRINT 5 + (A# == 1)
|
||
|
|
140 PRINT 4 - (A# == 2)
|
||
|
|
150 REM And on the left it is refused by name rather than computed.
|
||
|
|
160 PRINT (A# == 1) - 1
|