A minor point, perhaps, but Java’s Optional is not free. Due to Java lacking ‘value types’, essentially just stack allocation, you must allocate on the heap to wrap a type in Optional. And, due to that lack of value types, you can not wrap a primitive type in an Optional - so you’re again forced to make use of the heap when it may not be necessary. These are minor annoyances, but coming from lower level languages I definitely find it irksome to be forced to use the heap in places where the stack is obviously acceptable.
Rumor has it that Java will be getting some form of value types. All it took was them being shown up by C++, then C#, then Go, then Swift. Give them another 20 years and it will basically be an enterprise version of Haskell.
How come modern mathematics is so much like a cult? In universities you're forced to recite the correct incantations, which in most cases are just a layer of bullshit on top of the base ideas, for full credit.
Cult of the infinite set. Very focused on repackaging old ideas in a more abstract and harder to understand way.
Name:
Anonymous2017-02-04 13:32
more like lulpointers amiright
Name:
Anonymous2017-02-04 17:36
>>47 I (>>42) was wrong. Yes, unboxed types in Haskell are value types.
Name:
Anonymous2017-02-04 18:58
>>51 No! Javascript will rule them all! You'll see!
>>60 Your Javascript engine sucks because it doesn't support TCO or a decently sized stack. The Ackermann function is defined recursively, but it isn't primitive recursive, so you can't easily convert it into an iterative solution.
Name:
Anonymous2017-02-05 7:18
>>63 It probably doesn't support arbitrarily large integers out of the box either
They get a bit silly defining integer addition as recursive, then using a + symbol in their definition And it doesn't really work for non-integers (there's no smallest positive non-integer)