Skip to content

Latest commit

 

History

History
33 lines (30 loc) · 2.2 KB

ToDos.md

File metadata and controls

33 lines (30 loc) · 2.2 KB

To Do

  • 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:

    1. for-loops -> Sequence
    2. while-loops -> Trampoline
    3. throws -> Result
    4. call-backs -> Publisher
    5. inheritance -> Func via currying
    6. 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