Neato

You are viewing a single thread.
View all comments View context
1 point

“a = x if foo else y” is a perfectly cromulent statement!

permalink
report
parent
reply
2 points

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
}
permalink
report
parent
reply
1 point

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.
permalink
report
parent
reply
2 points

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.

permalink
report
parent
reply

Python

!python@programming.dev

Create post

Welcome to the Python community on the programming.dev Lemmy instance!

📅 Events
Past

November 2023

October 2023

July 2023

August 2023

September 2023

🐍 Python project:
💓 Python Community:
✨ Python Ecosystem:
🌌 Fediverse
Communities
Projects
  • Pythörhead: a Python library for interacting with Lemmy
  • Plemmy: a Python package for accessing the Lemmy API
  • pylemmy pylemmy enables simple access to Lemmy’s API with Python
  • mastodon.py, a Python wrapper for the Mastodon API
Feeds

Community stats

  • 709

    Monthly active users

  • 428

    Posts

  • 2.2K

    Comments