It was clearly a joke.
Only a Linux user's answer to "how do I install software that's not packaged for my distro" would be "don't".
I'd like to know which specific projects they funded. It's there a list anywhere?
No because it doesn't remotely take that long.
where FP seeks to make most things pure
I made this mistake for ages because Haskell is so popular and it's functional and pure, but it's not actually a requirement for functional languages to be pure. OCaml isn't.
When I read Rust code, I have to completely shift my thinking to something much more imperative.
I agree Rust code has a different feel to OCaml code but that's because it makes some things easier (e.g. mutation, vectors). You still could write Rust as if it was OCaml (except for the lack of currying), it's just that nobody does that because it sucks.
I think we're probably agreeing, it's just that "functional programming" is extremely poorly defined and we're interrupting it differently. You're thinking "a language where people write enormous nested expressions and over-use recursive functions and linked lists" and I'm thinking "a language that supports lots of features common in the FP paradigm: first class functions, pattern matching, expression based not statement based, iterators/map/filter/reduce, currying, tagged unions/sum types, etc."
Lol no. Please show me where he says that.
If that were really true then they would give users with 100k rep some benefit of the doubt when it comes to questions... but nope. Still get closed as "too vague" by people who haven't even heard of the thing you're asking about.
Does that not happen with Mercurial? If not that seems like a point against it.
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.
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
}
That depends on how readable you want the output to be. It's already pretty bad on that front. If you start supporting arbitrary features it's going to end up as a bytecode interpreter. Which would be pretty cool too tbf! Has anyone written a WASM runtime in bash? 😄
I think once things get established the people in charge see any attempt to change it as some kind of personal insult, so they just go into defence mode. You see the same thing e.g. with Python - for literally decades they've denied that performance matters and it's really only recently that that has changed.
I think it will only get worse for C++ because the people who understand this stuff have mostly given up on C++.