Never forget your roots
(setq x (if (> y 5) :foo :bar))
Comment on proportional reaction
four@lemmy.zip 2 days ago
x = if y > 5 { "foo" } else { "bar" }
This is just superior to anything else
Never forget your roots
(setq x (if (> y 5) :foo :bar))
I honestly can’t see how this is more readable than
x = (y > 5) ? “foo” : “bar”
I get that it’s a syntax that needs to be learned, but it’s just so clean and concise!
Because it can be done for multiple lines too. And you can do else-if too. Also, “if” and “else” is more recognizable than “?” and “:”
x = if y > 5 { println!("Y was over 5"); z + 5 } else if y < 0 { handle_negative_y(y); z - y } else { println!("<WARN> unexpected value for y"} 0 }
What I like about using if
and else
for that is that you’re already using those keywords for branching in other parts of the code.
Though my least favorite is probably Python’s:
x = "foo" if y > 5 else "bar"
It just seems backwards to me
Because Python wants you to read it like English: English:
x is “foo” if y is greater than 5, else it is “bar”
While Python’s version does feel a bit backwards, it’s at least consistent with how list comprehensions are set up (they can also feel a bit “backwards” imo)
List comprehension is another thing I don’t like about Python :)
There’s more of those, but one thing I do like about Python is that I get paid for writing it, so I try not to complain too much
(‘bar’,:‘foo’)&({~ 5&< )
kryptonianCodeMonkey@lemmy.world 1 day ago
In what language is that valid syntax?
calcopiritus@lemmy.world 1 day ago
This is valid rust. I don’t know if there are more languages with this feature
four@lemmy.zip 1 day ago
This is Rust syntax, but there’s similar syntax in Haskell