[HN Gopher] A constructive look at the Atari 2600 BASIC cartridge
       ___________________________________________________________________
        
       A constructive look at the Atari 2600 BASIC cartridge
        
       Author : reaperducer
       Score  : 26 points
       Date   : 2021-01-06 19:14 UTC (3 hours ago)
        
 (HTM) web link (boston.conman.org)
 (TXT) w3m dump (boston.conman.org)
        
       | mikestew wrote:
       | Okay, so we have the common trope of "Atari 2600 BASIC was
       | horrible" (and it was), and now "meh, it wasn't _that_ bad ". But
       | it seems the only people that actually used the cartridge for
       | more than five minutes are the two groups writing those things.
       | What I want is, "How I Used the Atari 2600 BASIC Cartridge to Do
       | Something Useful". 64 bytes ought to be enough for anyone,
       | amirite?
       | 
       | Seriously, did anyone who bought one do more than plug it in and
       | become very disappointed?
        
       | wazoox wrote:
       | Misses "2015" in the title I guess.
        
       | fortran77 wrote:
       | I almost forgot--the IF statement is an expression! You can do
       | the following:               A - IF B = 15 THEN 40 ELSE 99
       | and A will be 40 if B is 15, otherwise A will be 99. There aren't
       | many languages I've used that have allowed this
       | 
       | I need to introduce this man to the wonderful world of Haskell,
       | Erlang, and other Functional Programming Languages.
        
         | sedatk wrote:
         | That's very confusing as other BASIC dialects had used the same
         | syntax in lieu of GOTO. `IF B = 15 THEN 40 ELSE 99` would be
         | equivalent to `IF B = 15 THEN GOTO 40 ELSE GOTO 99`.
        
         | Mountain_Skies wrote:
         | Why is this desirable? It saves maybe half a dozen keystrokes
         | in exchange for less readable and thus less maintainable code.
        
           | jandrese wrote:
           | On the 2600 if it saved you a byte or two it was a big win.
           | Remember your program had to fit in _64 bytes_ of memory. Not
           | kilobytes, single bytes. And your numbers are BCD encoded, so
           | they 're extra inefficient.
        
         | jaymzcampbell wrote:
         | Python also lets you do this, definitley a nice bit of sugar
         | 
         | ``` In [2]: b = 15; In [3]: a = 40 if b == 15 else 99; In [4]:
         | a; Out[4]: 40; ```
        
           | mattw2121 wrote:
           | and PHP
           | 
           | ``` $a = $b == 15 ? 40 : 99; ```
        
         | KSS42 wrote:
         | Verilog has a conditional operator ?:
         | 
         | condition ? value_if_true : value_if_false
         | 
         | It is used quite extensively in ASIC design.
        
           | bluedino wrote:
           | As does C, Ruby...
        
         | kgwxd wrote:
         | Clojure: (def a (if (= b 15) 40 99))
         | 
         | Also: (def a (cond (= b 15) 40 (= b 20) 50 :else 99))
        
         | 0x7755XP wrote:
         | It's identical to the ternary operator (for most c like
         | programming languages)
        
       ___________________________________________________________________
       (page generated 2021-01-06 23:01 UTC)