• Skull giver@popplesburger.hilciferous.nl
    link
    fedilink
    arrow-up
    0
    ·
    5 months ago

    As in yield/return, yes.

    I don’t see why you would need semicolons in any of those cases. The only languages I know that have you put a backslash at the end of the line to continue am expression are already using semicolons, while Python allows splitting expressions across lines without them.

    • force@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      5 months ago

      I don’t work on any widely-used languages (I’ve made my own but not anything important) but I do think the designers of Zig and Rust have very good reasons for using semicolons – I read some reasons from the Rust devs themselves somewhere but I can’t remember them other than it vaguely being about how Rust is expression-based and intended to be lightweight and how whitespace significance can create confusion around how to read and write certain things and bla bla bla…

      but my personal opinion, what I generally I would imagine it’s for other than readability, is because the code can look a lot cleaner when an expression returned from a block is just the expression, and not expression plus some token like return. It’s especially nice in long closures or extremely short and simple blocks. I would rather consistently have to write expressions broadly like let a = { b + c }; rather than let a = { return b + c }. The semicolon has significance as a “result discarder” so expressions can be the default, so it’s on the surface a lot more functional-friendly.

      Also this is more specific but I hate the way WS languages generally handle quotes