[HN Gopher] 'Do' More with 'Run'
       ___________________________________________________________________
        
       'Do' More with 'Run'
        
       Author : mgreenw
       Score  : 7 points
       Date   : 2023-05-19 14:06 UTC (8 hours ago)
        
 (HTM) web link (maxgreenwald.me)
 (TXT) w3m dump (maxgreenwald.me)
        
       | Waterluvian wrote:
       | Feels like code golf. The two run examples are basically the
       | same, but now I have to reason about what 'run' is and I've made
       | my stack trace more complicated.
       | 
       | I am in love with "everything is an expression" from my time with
       | Rust. I regularly use a 'let' and wish I could just have the
       | entire conditional feed into a 'const' given it's never going to
       | change after the block of code responsible for assignment.
       | 
       | I wish there were more generations of 'use strict' so that we
       | could make bolder, more breaking changes to the language without
       | breaking stuff or dying in a horrible fire of "just roll your own
       | dialect using compiler plugins."
        
       | jlhawn wrote:
       | In the "Use as a `do` expression" section, the example which uses
       | `run` does not need the `else` cases and could be simplified:
       | function doWork() {         const x = run(() => {           if
       | (foo()) return f();           if (bar()) return g();
       | return h();         });                return x * 10;       }
        
         | bestcoder69 wrote:
         | Can also get rid of the `run` and move parens to simplify even
         | further:                 function doWork() {         const x =
         | () => {           if (foo()) return f();           if (bar())
         | return g();           return h();         };
         | return x() * 10;       }
        
       ___________________________________________________________________
       (page generated 2023-05-19 23:00 UTC)