@mao to Python@programming.dev • 1 month agoStatically Typed Functional Programming with Python 3.12wickstrom.techmessage-square12arrow-up143arrow-down11file-text
arrow-up142arrow-down1external-linkStatically Typed Functional Programming with Python 3.12wickstrom.tech@mao to Python@programming.dev • 1 month agomessage-square12file-text
minus-square@nxdefiant@startrek.websitelinkfedilink1•1 month ago 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.
minus-square@FizzyOrange@programming.devlinkfedilink2•1 month agofoo 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.
minus-square@nxdefiant@startrek.websitelinkfedilink2•1 month agoYeah, never said it was, just that if you really want to emulate that style you mostly can.
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.