-
Add a separate playground on all forms of map culminating in map on a new function type
-
Add a separate playground on all forms of zip culminating in zip on a new function type
-
Add a separate playground on all forms of flatMap culminating in flatMap on a new function type
-
Do a separate playground on contraMap, using Predicate as an example. Show that it is a characteristic of generics over functions
-
Add a playground on contraFlatMap continuing to use Predicate as the example
-
Add a separate playground on dimap as the composition of a contraMap and a map.
-
Carry the preceding playgrounds into a playground on the Func type. Provid std forms of map, flatmap, contramap, contraflatmap, dimap, invmap
-
Do a separate playground on Protocol Witnesses explaining existential types, work through mechanically getting rid of protocols altogether
-
Show the complete interaction between base functions, Func and CallAsFunction to produce the FunctionalProgramming.swift playground
-
Do a playground on KeyPath and Binding and show how they are alike. In particular show that the compose getters and setters
-
Do a playground on point-free style showing intermixing keypaths and functions. Explain the point-free style is all about composing the functions without application until the very end
-
Add a playground on zip(with:) as Applicative, putting a step in between map and flatMap
-
Replace existing Higher Order Functions III with a playground on Free Combine using the above.
-
Add Asynchrony to Free Combine
-
Add a playground showing how higher-order functions on types replace imperative language constructs:
- for-loops -> Sequence
- while-loops -> Trampoline
- throws -> Result
- call-backs -> Publisher
- inheritance -> Func via currying
- wait -> Future/Promise
-
Add KeyPaths and Bindings to the base swift material
-
Add CallAsFunction to the base swift material
-
Add a playground on function dispatch to the base material
-
Incorporate
@escaping
to the base material -
Incorporate
inout
to the base material -
Add a playground on invmap to show the extension to Reducers
-
Review current version of
The Swift Programming Language
for missed items. -
Add a playground on variadic functions