User Tools

Site Tools


todo

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
todo [2014/11/27 08:47]
djo
todo [2017/07/11 22:26]
djo
Line 3: Line 3:
 Articles to write; things to consider doing. Articles to write; things to consider doing.
  
-Something comparing/contrasting Maven/​OSGi? ​ Play with Kraf...?+===== Why Clojure ​Learning Clojure ===== 
 + 
 +  - Clojure isn't about FP, but: 
 +    * Data fundamentally takes a few core shapes and programs generically manipulate those few core shapes of data 
 +      * What? 
 +        * Sequences (lists, vectors) 
 +        * Maps 
 +        * Sets 
 +        * Simple data types (numbers, strings, etc.
 +      * Examples 
 +        * clojure.java.io/​input-stream - Set of input types 
 +        * map/reduce (flatmap) have exactly one implementation in Clojure and will never need another one 
 +          * (Contrast with Scala where every collection needs its own map/​flatten/​flatmap implementations) 
 +  - Separating the customer'​s perspective/​vocabulary from the program'​s 
 +    * Concerns 
 +      * Customer has one vocabulary (Objects formalize that vocabulary into protocols that make it impossible to process data generically) 
 +      * Programs want to process data as generically as possible 
 +    * These two concerns tend to be intertwined in OO programs. ​ Lisp gives us tools to separate those concerns. 
 +      * Internal DSLs 
 +  - Compile-time type inference/​checking with Specs
  
 ===== Scala / FP ===== ===== Scala / FP =====
todo.txt · Last modified: 2017/07/11 22:26 by djo