mao@lemmy.sdf.org to Python · 7 months agoStatically Typed Functional Programming with Python 3.12wickstrom.techexternal-linkmessage-square12fedilinkarrow-up145arrow-down11file-text
arrow-up144arrow-down1external-linkStatically Typed Functional Programming with Python 3.12wickstrom.techmao@lemmy.sdf.org to Python · 7 months agomessage-square12fedilinkfile-text
minus-squarenxdefiant@startrek.websitelinkfedilinkarrow-up1·7 months 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-squareFizzyOrangelinkfedilinkarrow-up2·7 months 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-squarenxdefiant@startrek.websitelinkfedilinkarrow-up2arrow-down2·7 months 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.