Neato

    • @FizzyOrange@programming.dev
      link
      fedilink
      3
      edit-2
      1 month ago

      You’re still limited by lambda expressions though. And in general the language is still statement based, not expression based. You can’t do a = if foo then x else y type things (except for the one-off and backwards x if foo else y; they were so close!).

        • @FizzyOrange@programming.dev
          link
          fedilink
          21 month ago

          It’s not. In functional languages there’s no special case like this. All if-elses are expressions. It’s far superior. For example how do you do this with Python’s if-else expression?

          let x = if foo {
            let y = bar();
            baz();
            y
          } else {
            z
          }
          
          • @nxdefiant@startrek.website
            link
            fedilink
            11 month ago

            x = foo(y:=bar(), baz(), y) or z should work assuming foo bar and baz are functions being called?

            if this is setting y to the effect of bar() + running baz after, then:

            x = [bar(), baz()][0] or z

            might work

            and if you need y to be defined for later use:

            x = [(y:=bar()), baz()][0] or z

            but thats from memory, not sure if that will even run as written.

            if I get to a real computer I'll try that with an actual if statement instead of a bastardized ternary.