F#–Exercises in Programming Style

If you enjoy read­ing these exer­cis­es then please buy Crista’s book to sup­port her work.

Style Name Descrip­tion
Good Old Times Ear­ly 50s style. Small amount of mem­o­ry, and no vari­able names or tagged mem­o­ry address­es.
Go Forth Stack based style, ala Forth or Fac­tor.
Mono­lith­ic aka Brain Dump. No abstrac­tions, no use of library func­tions.
Cook­book Pro­ce­dur­al style.
Pipeline Func­tion­al style.
Code Golf APL style. As few lines of code as pos­si­ble.
Infi­nite Mir­ror Recur­sive style.
Kick For­ward Con­tin­u­a­tion pass­ing style.
The One Mon­ads.
Things Object-ori­ent­ed style.
Let­ter­box Mes­sage pass­ing style.
Closed Maps Where every­thing is a map from keys to val­ues.
Abstract Things Sim­i­lar to Things, but more abstract (e.g. inter­faces).
Hol­ly­wood Call­back hell.
Bul­letin Board Pub-sub style.
Reflec­tive Meta-pro­gram­ming style.
Aspects Aspect-ori­ent­ed style.
Plu­g­ins Using depen­den­cy injec­tion.
Con­struc­tivist Defen­sive cod­ing.
Tantrum Design by con­tract.
Pas­sive Aggres­sive Let it crash.
Declared Inten­tions
Quar­an­tine Pro­gram­ming with IO Mon­ad.
Per­sis­tent Tables Using a rela­tion­al DB.
Lazy Rivers Dataflow style.
Actors Using actors.
Map Reduce
Dou­ble Map Reduce Hadoop style.
Trin­i­ty MVC style.
The C Flow