If we were to create a Rust version of this page for Haskell, what cool programming techniques would you add to it?

  • barsoap@lemm.ee
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    2 months ago

    Pre- and post-increment are only really useful when you’re doing C-style looping and there’s a good reason we don’t do that in Rust.

    I actually honestly can’t recall ever making an off by one error in Rust, I’m sure when implementing specific data structures or when doing pointer manipulation it’s still a possibility but you can write a gazillion lines of code without ever running risk of that particular annoyance. Also while C folks may have an argument regarding operator semantics, C++ folks don’t they’re doing unspeakable things to <<.

    Also, FWIW Haskell uses ++ to append lists and therefore also strings. It’s not like it’s an odd-ball usage of the symbols, that’d be .. which I vaguely remember some language using. Would cause a whole new class of confusion regarding 'a'..'z' vs. "a".."z". Not to mention that "aa".."zz" actually makes sense as a range all that’s missing is &str: Step. Probably not a good idea to have built-in because do we mean printable ASCII? Whole unicode range? Just the alphabet? Not an issue when you’re doing it to single chars but strings get ambiguous fast. Does Rust even guarantee stuff about Char ordering C certainly doesn’t really do that, short of I think 0..9 being contiguous.

    • BB_C@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      2 months ago

      It’s not like it’s an odd-ball usage of the symbols, that’d be .. which I vaguely remember some language using.

      I take it, you don’t bash/zsh/…?

      • barsoap@lemm.ee
        link
        fedilink
        arrow-up
        1
        ·
        2 months ago

        I try not to and if I have to I’d use string interpolation. I’m not even sure whether you’re pulling my leg right know, I literally don’t remember whether they have a string append operator.

        Like 99.999% of the sh I ever wrote was in Makefiles and short wrapper scripts which could just as well be aliases. No argument handling past $@, no nothing the language is just too fickle for me to bother dealing with. The likes of zsh are make-up on a pig, I think I had a quick run-in with fish but never really got the hang. Nushell is different, it’s actually bold enough in its changes to get rid of all the crufty nonsense.

        • BB_C@programming.dev
          link
          fedilink
          arrow-up
          2
          ·
          2 months ago

          Sorry, I thought you meant the use of .. in Rust is odd. So I pointed out that {0..9} and{a..z}is also used at least in bash and zsh. That’s at least 10s of millions of users!

          I know of .. being used for appending by lua at least. So still not odd-ball I would argue, since the people who interacted with lua code in their life probably outnumber those who interacted with all functional languages combined.

          • barsoap@lemm.ee
            link
            fedilink
            arrow-up
            2
            ·
            2 months ago

            Now that you mention it yes Lua is probably the one that I remember. It’s an incredibly well-designed language from start to finish but also culturally an odd-ball. .. isn’t even the biggest offender: Their indices start at 1. Haskell accosts you with zygohistomorphic prepromorphisms but at least [1,2,3] !! 1 is 2.