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

  • Ephera@lemmy.ml
    link
    fedilink
    arrow-up
    8
    ·
    20 days ago

    This works with anything that one might call “named tuples”.

    So, you can also define a struct like so and it’ll work:

    struct Baz(i32);
    

    On the other hand, if you define an enum variant with the normal struct syntax, it does not work:

    enum Foo {
        ...
        Qux { something: i32 } //cannot omit braces
    }
    
    • barsoap@lemm.ee
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      20 days ago

      Named function arguments would occasionally be nice to have instead of the single n-tuple they take now. Currently I’m more or less playing a game of "can I name my local variables such that rust-analyzer won’t display the argument name when I stick them into functions (because they’re called the same)).

      • Ephera@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        20 days ago

        Yeah, I do miss those, too, although I’ve noticed that I’m becoming ever more consistent with just naming my variables like the type is called and that works out nicely in Rust, because then you can also leave out the field name when filling in a struct with named fields. I’ll often have named my function parameters the same name that I ultimately need to pass into structs fields.

        At this point, I’m secretly wondering, if a programming language could be designed where you don’t normally fill in variable names, but rather just use the type name to reference each value.
        For the few cases where you actually do have multiple variables of the same type, then you could introduce a local (type) alias, much like it’s currently optional to add type annotations.
        Someone should build this, so I don’t have to take on another side project. 🙃