There’s no mutating happening here, for example:
if cond:
X = “yes”
else:
X = “no”
X is only ever assigned once, it’s actually still purely functional. And in Rust or Lisp or other expression languages, you can do stuff like this: let X = if cond { “yes” } else { “no” };
That’s a lot nicer than a trinary operator!