this post was submitted on 19 Jun 2025
89 points (86.2% liked)

Programmer Humor

36860 readers
6 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 

Made with KolourPaint and screenshots from Kate (with the GitHub theme).

you are viewing a single comment's thread
view the rest of the comments
[–] notarobot@lemm.ee 5 points 1 week ago* (last edited 1 week ago) (2 children)

What about

Let ret: Number
If (someCondition) {
    <a lot of expensive calculations>
    ret = resultOfOperations
} else {
    <a lot of other different expensive operations>
    ret = resultOfOtherOperations
}
return ret

You can't declare ret inside the brackets

[–] ferric_carcinization@lemmy.ml 5 points 1 week ago (2 children)

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.

[–] barubary@infosec.exchange 5 points 1 week ago

Similarly, Perl lets you say

my $ret = do {    if (...) {        ...    } else {        ...    }};
[–] notarobot@lemm.ee -2 points 1 week ago (2 children)
[–] ferric_carcinization@lemmy.ml 4 points 1 week ago

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.

[–] Ephera@lemmy.ml 2 points 1 week ago

It's the same thing as ternary, just without the ? : syntax.

[–] ThirdConsul@lemmy.ml 4 points 1 week ago (1 children)
let ret = someCondition ? expensiveOperation() : otherOperation() 

?

[–] notarobot@lemm.ee 2 points 1 week ago

Yeah. That works.