Is ruby the new Perl?
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.
I never looked at Ruby, but that doesn’t seem like it would be great for readability (although maybe productivity).
People mostly refrain from using it.
Much like people used to create an idiom in Perl and stick to it.
And lets you easily write metal languages due to the way you can pass around blocks. Think configuration as code type stuff.
Damn, I wish rust had that
I’m glad it doesnt.
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™.Except when Type::Method takes a reference, then it doesn’t just work
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 theIterator
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.
Swift does, though using the dollar sign rather than underscores
I sincerely doubt Rust would ever add something like this.
Is it just me or does it feel kinda unclean for it to just support 1 through 9?
tbf positional arguments are already bad enough. Now if you’re using over 9 positional args… just take a break, go for a short walk, and maybe you’ll come back with a better plan
The liberty to not name things that are obvious.
and that’s yet another way to end up with hard to read code.
Variables hold values that have meaning. Learn how to name things and you’ll write good code.
This makes me want to write a function for you to add to numbers where the variables are leftumber and rightnumber, instead of x and y.
if “left” and “right” were relevant for addition, they would indeed be better names
Are you against using a single letter variable like e for element in iterating over things?
OMG looks like Raku