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
200
"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
関数型言語テイスティング: Haskell, Scala, Clojure, Elixirを比べて味わう関数型プログラミングの旨さ
lagenorhynque
1
92
純LISPから考える関数型言語のプリミティブ: Clojure, Elixir, Haskell, Scala
lagenorhynque
1
96
From Scala/Clojure to Kotlin
lagenorhynque
0
43
TDD with RDD: Changed Developer Experience through Clojure/Lisp REPLs
lagenorhynque
0
75
My Favourite Book in 2024: Get Rid of Your Japanese Accent
lagenorhynque
1
110
do Notation Equivalents in JVM languages: Scala, Kotlin, Clojure
lagenorhynque
0
79
map関数の内部実装から探るJVM言語のコレクション: Scala, Kotlin, Clojureコレクションの基本的な設計を理解しよう
lagenorhynque
0
73
Kotlin Meets Data-Oriented Programming
lagenorhynque
0
66
Introduction to Tree Representations in RDB 2024
lagenorhynque
0
98
Other Decks in Programming
See All in Programming
Ruby Parser progress report 2025
yui_knk
1
440
Testing Trophyは叫ばない
toms74209200
0
880
Deep Dive into Kotlin Flow
jmatsu
1
340
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
440
アルテニア コンサル/ITエンジニア向け 採用ピッチ資料
altenir
0
110
意外と簡単!?フロントエンドでパスキー認証を実現する WebAuthn
teamlab
PRO
2
760
Kiroで始めるAI-DLC
kaonash
2
590
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
310
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
2
120
MCPでVibe Working。そして、結局はContext Eng(略)/ Working with Vibe on MCP And Context Eng
rkaga
5
2.3k
複雑なドメインに挑む.pdf
yukisakai1225
5
1.2k
速いWebフレームワークを作る
yusukebe
5
1.7k
Featured
See All Featured
Producing Creativity
orderedlist
PRO
347
40k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Speed Design
sergeychernyshev
32
1.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
KATA
mclloyd
32
14k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
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