• marcos@lemmy.world
      link
      fedilink
      arrow-up
      5
      arrow-down
      1
      ·
      9 months ago

      That deserves an “always has been” meme… But IMO, Ruby outperled Perl since the beginning.

      Perl doesn’t let you redefine the syntax so that you can write the same program multiple ways. All it does is to encourage multiple programs to have the same meaning.

      • AnUnusualRelic@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        9 months ago

        I never looked at Ruby, but that doesn’t seem like it would be great for readability (although maybe productivity).

        • marcos@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          9 months ago

          People mostly refrain from using it.

          Much like people used to create an idiom in Perl and stick to it.

    • colonial@lemmy.world
      link
      fedilink
      arrow-up
      12
      arrow-down
      1
      ·
      9 months ago

      It wouldn’t be as relevant, since passing a function or method instead of a closure is much easier in Rust - you can just name it, while Ruby requires you to use the method method.

      So instead of .map(|res| res.unwrap()) you can do .map(Result::unwrap) and it’ll Just Work™.

        • colonial@lemmy.world
          link
          fedilink
          arrow-up
          0
          arrow-down
          1
          ·
          edit-2
          9 months ago

          Well, that’s to be expected - the implementation of map expects a function that takes ownership of its inputs, so you get a type mismatch.

          If you really want to golf things, you can tack your own map_ref (and friends) onto the Iterator trait. It’s not very useful - the output can’t reference the input - but it’s possible!

          I imagine you could possibly extend this to a combinator that returns a tuple of (Input, ref_map'd output) to get around that limitation, although I can’t think of any cases where that would actually be useful.

  • Knusper@feddit.de
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    9 months ago

    I do think the unnumbered variant of such anonymous parameters is useful, if you’ve got a team of devs that knows not to misuse them.

    In particular, folks who are unexperienced will gladly make massive multi-line transformations, all in one step, and then continue blathering on about it or similar, as if everyone knew what they were talking about and there was no potential for ambiguity.

    This is also particularly annoying, because you rarely read code top-to-bottom. Ideally, you should be able to jump into the middle of any code and start reading, without having to figure out what the regional abbreviations or it mean.