Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
"Simple Made Easy" Made Easy
Search
Kent OHASHI
July 29, 2019
Programming
0
210
"Simple Made Easy" Made Easy
Rich Hickeyの有名なプレゼン"Simple Made Easy"を簡単に解説(*> ᴗ •*)ゞ
Clojureの基本的な設計思想を理解しよう!
Kent OHASHI
July 29, 2019
Tweet
Share
More Decks by Kent OHASHI
See All by Kent OHASHI
KotlinでミニマルなResult実装による関数型エラーハンドリング
lagenorhynque
0
10
Functional Calisthenics in Kotlin: Kotlinで「関数型エクササイズ」を実践しよう
lagenorhynque
0
140
関数型言語テイスティング: Haskell, Scala, Clojure, Elixirを比べて味わう関数型プログラミングの旨さ
lagenorhynque
1
120
純LISPから考える関数型言語のプリミティブ: Clojure, Elixir, Haskell, Scala
lagenorhynque
1
150
From Scala/Clojure to Kotlin
lagenorhynque
0
64
TDD with RDD: Changed Developer Experience through Clojure/Lisp REPLs
lagenorhynque
0
91
My Favourite Book in 2024: Get Rid of Your Japanese Accent
lagenorhynque
1
130
do Notation Equivalents in JVM languages: Scala, Kotlin, Clojure
lagenorhynque
0
96
map関数の内部実装から探るJVM言語のコレクション: Scala, Kotlin, Clojureコレクションの基本的な設計を理解しよう
lagenorhynque
0
93
Other Decks in Programming
See All in Programming
Flutterアプリ運用の現場で役立った監視Tips 5選
ostk0069
1
510
r2-image-worker
yusukebe
1
180
「正規表現をつくる」をつくる / make "make regex"
makenowjust
1
740
30分でDoctrineの仕組みと使い方を完全にマスターする / phpconkagawa 2025 Doctrine
ttskch
2
420
TVerのWeb内製化 - 開発スピードと品質を両立させるまでの道のり
techtver
PRO
3
1.2k
Feature Flags Suck! - KubeCon Atlanta 2025
phodgson
0
160
AI 時代だからこそ抑えたい「価値のある」PHP ユニットテストを書く技術 #phpconfuk / phpcon-fukuoka-2025
shogogg
1
580
CSC509 Lecture 13
javiergs
PRO
0
260
AI時代もSEOを頑張っている話
shirahama_x
0
160
JJUG CCC 2025 Fall: Virtual Thread Deep Dive
ternbusty
3
480
AIの弱点、やっぱりプログラミングは人間が(も)勉強しよう / YAPC AI and Programming
kishida
11
5.3k
Rails Girls Sapporo 2ndの裏側―準備の日々から見えた、私が得たもの / SAPPORO ENGINEER BASE #11
lemonade_37
2
190
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Designing for humans not robots
tammielis
254
26k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
A designer walks into a library…
pauljervisheath
210
24k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
11
940
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
680
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Transcript
"Simple Made Easy" Made Easy "Simple Made Easy" Made Easy
Clojure Clojure
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"])
Clojure Clojure (*> ᴗ •*) (*> ᴗ •*) clojure tips
? 7 7
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 Easy Simple Made Easy
( ( ) ) Clojure "simple" ( Clojurian ) cf.
( ) Simple Made Easy Simple Made Easy Strange Loop 2011 Strange 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 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