476 Views
July 29, 19
スライド概要
Rich Hickeyの有名なプレゼン"Simple Made Easy"を簡単に解説(*> ᴗ •*)ゞ
Clojureの基本的な設計思想を理解しよう!
「楽しく楽にcoolにsmartに」を理想とするprogrammer/philosopher/liberalist/realist。 好きな言語はClojure, Haskell, Python, English, français, русский。 読書、プログラミング、語学、法学、数学が大好き! イルカと海も大好き🐬
"Simple Made Easy" Made Easy Clojure
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"])
7 Clojure clojure tips ? (*> ᴗ •*)
1. "simple" "easy" 2. Simple Made Easy 3. "simple" "easy" 4. "simple" "easy" 5. "simple" 6. 7. Clojure "simple" "simple"
"simple" "easy"
Clojure "simple" "easy" Clojure "simple"
Simple Made Easy
Simple Made Easy (Strange Loop 2011) Clojure Rich Hickey "simple" ( Clojurian cf. Simplicity Matters (Rails Conf 2012) | eed3si9n )
"Simple Made Easy" simple Word Power Made Easy "simple" "easy" "simple" "easy" ?
"simple" "easy"
"simple" simple < simplex (= sim + plex) simplex : / : complex (= com + plex) :
"easy" easy (= ease + y) < aise/eise < adjacens adjacens (cf. : / ( ) adjacent) ) ( ( ) : hard : easy
"simple" "easy"
"simple" "easy" simple/complex, easy/hard easy complex 2 simple Rich Hickey ! simple simple or complex simple or easy
"easy but complex" vs "simple but hard" easy complex (= not simple) easy complex complex simple hard (= not easy) hard simple simple
"simple"
(complexity)
"simple" "simple" /
"simple"
"simple" "complex" (complect) "simple" (abstract) (draw away) abstract who, what, when, where, why, how "simple" (simplify)
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: (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))) "simple"
"complect" ( ) "simple"
"complect" atom, ref, agent "simple"
"complect" ) "complect" who ( "simple" ) what (
what ( "complect" ) who ( ) "simple" e.g. core.async
"simple" Simple Made Easy Clojure / ! !
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