HiddenLayer555@lemmy.ml to Programmer Humor@lemmy.mlEnglish · 1 day agoWhy make it complicated?lemmy.mlimagemessage-square45fedilinkarrow-up186arrow-down112file-textcross-posted to: programmer_humor@programming.dev
arrow-up174arrow-down1imageWhy make it complicated?lemmy.mlHiddenLayer555@lemmy.ml to Programmer Humor@lemmy.mlEnglish · 1 day agomessage-square45fedilinkfile-textcross-posted to: programmer_humor@programming.dev
minus-squareferric_carcinization@lemmy.mllinkfedilinkEnglisharrow-up2·8 hours agoRust would allow you to let ret = if some_condition { <a lot of expensive calculations> result_of_operations } else { <a lot of other different expensive calculations> result_of_other_operations }; Now you don’t have to declare it inside the blocks.
minus-squareOriel Jutty :hhHHHAAAH:@infosec.exchangelinkfedilinkarrow-up4·7 hours agoSimilarly, Perl lets you say my $ret = do { if (...) { ... } else { ... }};
minus-squareferric_carcinization@lemmy.mllinkfedilinkEnglisharrow-up2·6 hours agoWhat’s disgusting about it? The only thing I can think of is the implicit return, which felt a bit icky at first. Also, as the if expression is an expression, you can call methods on it like so: if 1 > 2 { 3 } else { 4 }.min(5) (the above is still an expression, so it could be used, for example, as part of a condition for another if) Of course, you can write horrible code in any language, but the ability to use blocks where expressions are expected can be great sometimes.
minus-squareEphera@lemmy.mllinkfedilinkEnglisharrow-up1·6 hours agoIt’s the same thing as ternary, just without the ? : syntax.
Rust would allow you to
let ret = if some_condition { <a lot of expensive calculations> result_of_operations } else { <a lot of other different expensive calculations> result_of_other_operations };
Now you don’t have to declare it inside the blocks.
Similarly, Perl lets you say
my $ret = do { if (...) { ... } else { ... }};
That’s… Disgusting
What’s disgusting about it? The only thing I can think of is the implicit return, which felt a bit icky at first.
Also, as the if expression is an expression, you can call methods on it like so:
if 1 > 2 { 3 } else { 4 }.min(5)
(the above is still an expression, so it could be used, for example, as part of a condition for another if)
Of course, you can write horrible code in any language, but the ability to use blocks where expressions are expected can be great sometimes.
It’s the same thing as ternary, just without the
? :
syntax.