Warning: Some posts on this platform may contain adult material intended for mature audiences only. Viewer discretion is advised. By clicking ‘Continue’, you confirm that you are 18 years or older and consent to viewing explicit content.
It’s not. In functional languages there’s no special case like this. All if-elses are expressions. It’s far superior. For example how do you do this with Python’s if-else expression?
let x = if foo {
let y = bar();
baz();
y
} else {
z
}
foo isn’t a function, it’s a bool. But in any case, as you can see the answer is “with terrible hacks”. Python is not a functional language. It is imperative.
It’s not. In functional languages there’s no special case like this. All if-elses are expressions. It’s far superior. For example how do you do this with Python’s if-else expression?
let x = if foo { let y = bar(); baz(); y } else { z }
x = foo(y:=bar(), baz(), y) or z
should work assuming foo bar and baz are functions being called?if this is setting y to the effect of bar() + running baz after, then:
x = [bar(), baz()][0] or z
might work
and if you need y to be defined for later use:
x = [(y:=bar()), baz()][0] or z
but thats from memory, not sure if that will even run as written.
if I get to a real computer I'll try that with an actual if statement instead of a bastardized ternary.
foo
isn’t a function, it’s a bool. But in any case, as you can see the answer is “with terrible hacks”. Python is not a functional language. It is imperative.Yeah, never said it was, just that if you really want to emulate that style you mostly can.