Skip to content

Latest commit

 

History

History
13 lines (10 loc) · 852 Bytes

README.md

File metadata and controls

13 lines (10 loc) · 852 Bytes

NDS

Package of mutable and immutable data structures along with associated algorithms. This library attempts to avoid some of the problems associated with the .Net BCL namely:

  • Overly-large interfaces (e.g. IList<T>)
  • Coupling of algorithms to the data structures they operate over (e.g. List<T>.BinarySearch)
  • Missing commonly-used structures (e.g. priority queues, graphs).

while maintaining the following design goals

  • Eliminate duplication
  • Avoid exceptions (e.g. KeyNotFoundException) in favour of more descriptive return types like Maybe, Either etc. Exceptions may be thrown for invalid arguments.
  • Enable testing of whole process of invariant maintentance. OO encourages hiding the invariant maintentance process of a data structure in private methods and testing only the interface.
  • Use property-based tests where possible.