42
you are viewing a single comment's thread
view the rest of the comments
[-] twelvefloatinghands@lemmy.world 3 points 1 year ago

Damn, I wish rust had that

[-] colonial@lemmy.world 12 points 1 year 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™.

[-] vidarh@lemmy.stad.social 1 points 1 year ago* (last edited 1 year ago)

In the case of your example we'd do .map(&:unwrap) in Ruby (if unwrap was a method we'd actually want to call)

Notably, these are not the cases _1 and _2 etc are for. They are there for the cases that are not structurally "call this method on the single argument to the block" e.g. .map{ _1 + _2 } or .map { x.foo(_1) }

(_1 is reasonable, because iterating over an enumerable sequence makes it obvious what it is; _1 and _2 combined is often reasonable, because e.g. if we iterate over a key, value enumerable, such as what you get from enumerating a Hash, it's obvious what you get; if you find yourself using _3 or above, you're turning to the dark side and should rethink your entire life)

load more comments (2 replies)
load more comments (5 replies)
this post was submitted on 11 Oct 2023
42 points (93.8% liked)

Programming

17314 readers
150 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS