4 ms·
This is what strongly-typed functional programming languages have been teaching and preaching and practising for years.
by infinity0 10y ago
This is what strongly-typed functional programming languages have been teaching and preaching and practising for years.
- oomkiller 10y agoCan you provide more detail, this is very intriguing. Do you mean that the types are the patterns?
- throwsincenotpc 10y agoNot the OP but let's take a tree. In F# it's trivial to describe what a tree structure is with the type system. In Java, you'll need to use the Composite pattern and write classes (tree + leaf) to create a tree like structure. Thus the Composite pattern is made irrelevant in F# since an algebraic type system allows you to describe an intent without writing imperative code. https://en.wikipedia.org/wiki/Composite_pattern https://en.wikipedia.org/wiki/Composite_pattern https://en.wikipedia.org/wiki/Algebraic_data_type https://en.wikipedia.org/wiki/Algebraic_data_type Good type systems are a trade-off between complexity and expressiveness, but it's something that is hard to get right. Obviously Java's type system is simpler thus in theory easier to learn. But in practice F#'s is easier to use if understood and might lead to smaller thus more maintainable code bases.
- stass 10y agoIt's not really a property of a functional or strongly typed language. Trees are trivial to define and iterate over in e.g. Prolog or Erlang as well. The essential thing here is the first class support for structured/abstract data types.