Join Notes

A batch of the best highlights from what Tristan's read, .

If one module depends upon another, that dependency should be physical, not just logical. The dependent module should not make assumptions (in other words, logical dependencies) about the module it depends upon. Rather it should explicitly ask that module for all the information it depends upon.

Clean Code

Robert C. Martin

Currying transforms a function with many arguments into a series of functions that each take one argument. A good reason to curry a function is that we want to call it based on some of its arguments, but not all of them: func add(_ x: Int) -> (_ y: Int) -> Int { { y in return x + y } } The function add() takes a single argument x and returns another function that adds y to x. Calling add(1)(2) produces the final result since add is really a series of two functions. Given a curried function, we can apply it partially.

Functions in Swift: Pure, Higher-Order and First-Class Functions, Currying and Partial Application

Vadim Bulavin

Their authors are natural and irresistible aristocracy in every society, and, more than kings or emperors, exert an influence on mankind.

Walden

Henry David Thoreau

...catch up on these, and many more highlights