Nous (meaning "mind", "intellect", or "understanding") is simply a documentation / learning project-- a place to collect, organize, and share ideas and code examples related to principled functional programming in Scala. As such, it is wholly the product of "standing on the shoulders of giants"-- almost without exception, the material contained in Nous has been gleaned from books, videos, tutorials and projects written by those who can see much further and far more clearly than myself-- I claim credit only for the mistakes and misrepresentations it will undoubtedly contain. Every attempt will be made to provide appropriate citations (if I fail to do so, please open an issue to correct me; I want to ensure that those who have helped me upon this journey receive the recognition they deserve). Similarly, if I attribute a statement or idea to someone that seems incorrect or clearly wrong, the misunderstanding is almost certainly mine (not the person cited), so please feel free to correct me.
As stated previously, nous is primarily a workspace and collection of thoughts inspired by many people, projects, books, videos, etc. Some of the sources from which I have learned (or am learning!) the most and which will be referenced (directly or indirectly) so often throughout the nous documentation that I'd like to cite them upfront:
- Michael Pilquist's excellent Functional Structures in Scala lecture series.
- Functional Programming in Scala by Paul Chiusano and Rúnar Bjarnason.
- Functional and Reactive Domain Modeling (MEAP), by Debasish Ghosh.
- Functional Patterns in Domain Modeling, video presentation by Debasish Ghosh.
- Constraints Liberate, Liberties Constrain, video presentation by Rúnar Bjarnason.