"Simple Made Easy" Made Easy"Simple Made Easy" Made Easy
ClojureClojure
lagénorhynquelagénorhynque
(defprofile lagénorhynque
:id @lagenorhynque
:reading "/laʒenɔʁɛ̃k/"
:aliases [" "]
:languages [Clojure Haskell English français]
:interests [programming language-learning law mathematics]
:commits ["github.com/lagenorhynque/duct.module.pedestal"]
:contributes ["github.com/japan-clojurians/clojure-site-ja"])
ClojureClojure (*> ᴗ •*)(*> ᴗ •*)
clojure
tips ?
77
1. "simple" "easy"
2. Simple Made Easy
3. "simple" "easy"
4. "simple" "easy"
5. "simple"
6. "simple"
7. Clojure "simple"
"simple" "easy""simple" "easy"
Clojure "simple"Clojure "simple"
"easy"
Clojure "simple"
Simple Made EasySimple Made Easy
(( ))
Clojure
"simple"
( Clojurian )
cf. ( )
Simple Made EasySimple Made Easy Strange Loop 2011Strange Loop 2011
Rich Hickey
Simplicity Matters Rails Conf 2012
| eed3si9n
"Simple Made Easy""Simple Made Easy"
simple
"simple" "easy"
"simple" "easy" ?
Word Power Made Easy
"simple" "easy""simple" "easy"
"simple""simple"
< simplex (= sim­ + plex)
simplex
:
/
: (= com­ + plex)
:
simple
complex
"easy""easy"
(= + ­y) < aise/eise < adjacens
adjacens (cf. adjacent)
:
( ) (
) ( )
/
:
: easy
easy ease
hard
"simple" "easy""simple" "easy"
"simple" "easy""simple" "easy"
simple/complex, easy/hard 2
easy simple !
complex simple
Rich Hickey
simple or complex
simple or easy
"easy but complex" vs "simple but hard""easy but complex" vs "simple but hard"
easy complex (= not simple)
easy complex
complex
simple hard (= not easy)
hard simple
simple
"simple""simple"
(complexity)
"simple""simple"
"simple"
/
"simple""simple"
"simple"
"complex" ( )
"simple"
(abstract)
(draw away)
who, what, when, where, why, how
"simple" (simplify)
complect
abstract
Clojure "simple"Clojure "simple"
;; Common Lisp: "complect"
(defun fizzbuzz (n)
(let ((fizzp (zerop (mod n 3)))
(buzzp (zerop (mod n 5))))
(cond ((and fizzp buzzp) "Fizz Buzz")
(buzzp "Buzz")
(fizzp "Fizz")
(t n))))
;; Clojure: "simple"
(defn fizzbuzz [n]
(let [fizz? (zero? (mod n 3))
buzz? (zero? (mod n 5))]
(cond
(and fizz? buzz?) "Fizz Buzz"
buzz? "Buzz"
fizz? "Fizz"
:else n)))
"complect"
( ) "simple"
"complect"
atom, ref, agent
"simple"
"complect"
who ( ) what (
) "complect"
"simple"
what ( ) who ( )
"complect"
"simple"
e.g. core.async
"simple""simple"
Simple Made Easy / !
Clojure !
Further ReadingFurther Reading
Simple Made Easy
matthiasn/talk-transcripts >
Hickey_Rich/SimpleMadeEasy.md
Clojure Simple Made Easy -
Simplicity Matters
| eed3si9n
Clojure Design Decisions
Clojure - Clojure core.async Channels

"Simple Made Easy" Made Easy