Immutability of participating data entities

The positive qualities of the approach of not using mutable program entities are well known:

  • Given the right state upon construction the immutable cannot be invalidated it during its whole lifetime
  • Immutable entities are easy to test
  • They do not require cloning or copy constructors
  • Immutable entities are automatically thread-safe

I must note that F# is not 100% strict about using immutable entities. As you may have already noticed, I used values, changing the state in my imperative and object-oriented solutions earlier. But the language requires the programmer to make an extra effort to introduce a changeable state (with the mutable modifier to let binding or via ref cells, although F# 4.0 pretty much eliminates the need for the latter).

Also, the majority of data structures introduced by the language are also immutable, which means that a typical data transformation produces a new immutable instance of a data structure from the existing data structure. This consideration requires a certain caution from programmers when dealing with bulk in-memory instances, but as my experience has taught me, developers get used to this feature easily.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset