In addition to being very close to mathematical foundations, functional programming provides the following advantages for constructing correct software:
- No null reference exceptions!
- Pure functions and immutable data structures minimize issues related to side effects, including concurrency issues. They are also much easier to test, especially with a QuickCheck-style framework.
- Powerful type system encodes and statically assures crucial domain properties as well as assists in code refactoring.
- Thanks to mathematical notation and type inference functional languages are very concise, that is have less noise in the code, thus are easier to read and maintain.
No comments:
Post a Comment