case of expressions and Pattern matching: being able (obligated) to exhaustively check all possible patterns of a given expression makes programs much more robust.
ADTs: I can't articulate exactly why. They feel very intuitive and I just love them :)
|> operator: Cleaner code by getting rid of the parenthesis.
My picks (from Elm):
case of
expressions and Pattern matching: being able (obligated) to exhaustively check all possible patterns of a given expression makes programs much more robust.|>
operator: Cleaner code by getting rid of the parenthesis.Yes, +1 for immutability and pattern matching on tagged unions as well.
By ADTs do you mean algebraic or abstract data types?
Union Types and Product Types, the ones supported by Elm.
I can live without everything but ADTs and pattern matching. In languages without these features, everything feels so clunky.