Upgrade to Pro — share decks privately, control downloads, hide ads and more …

"Simple Made Easy" Made Easy

"Simple Made Easy" Made Easy

Rich Hickeyの有名なプレゼン"Simple Made Easy"を簡単に解説(*> ᴗ •*)ゞ
Clojureの基本的な設計思想を理解しよう!

Kent OHASHI

July 29, 2019
Tweet

More Decks by Kent OHASHI

Other Decks in Programming

Transcript

  1. lagénorhynque lagé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"])
  2. 1. "simple" "easy" 2. Simple Made Easy 3. "simple" "easy"

    4. "simple" "easy" 5. "simple" 6. "simple" 7. Clojure "simple"
  3. ( ( ) ) Clojure "simple" ( Clojurian ) cf.

    ( ) Simple Made Easy Simple Made Easy Strange Loop 2011 Strange Loop 2011 Rich Hickey Simplicity Matters Rails Conf 2012 | eed3si9n
  4. "simple" "simple" < simplex (= sim­ + plex) simplex :

    / : (= com­ + plex) : simple complex
  5. "easy" "easy" (= + ­y) < aise/eise < adjacens adjacens

    (cf. adjacent) : ( ) ( ) ( ) / : : easy easy ease hard
  6. "simple" "easy" "simple" "easy" simple/complex, easy/hard 2 easy simple !

    complex simple Rich Hickey simple or complex simple or easy
  7. "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
  8. "simple" "complex" ( ) "simple" (abstract) (draw away) who, what,

    when, where, why, how "simple" (simplify) complect abstract
  9. ;; 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)))
  10. Further Reading Further 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