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
Clojure REPL: The Good Parts
Search
Kent OHASHI
November 25, 2019
Programming
0
54
Clojure REPL: The Good Parts
Clojure/LispのREPLのような「良いREPL」とは何か、考えてみよう!
Kent OHASHI
November 25, 2019
Tweet
Share
More Decks by Kent OHASHI
See All by Kent OHASHI
My Favourite Book in 2024: Get Rid of Your Japanese Accent
lagenorhynque
0
14
do Notation Equivalents in JVM languages: Scala, Kotlin, Clojure
lagenorhynque
0
14
Exploring Collections in JVM Languages through Internals of map Function
lagenorhynque
0
21
Kotlin Meets Data-Oriented Programming
lagenorhynque
0
25
Introduction to Tree Representations in RDB 2024
lagenorhynque
0
41
Boundary between Mutability and Immutability
lagenorhynque
0
53
Learning Modern Web API Styles from IDL: REST, GraphQL, gRPC
lagenorhynque
0
88
Team Geek Revisited
lagenorhynque
0
70
Scala vs Clojure?: The Rise and Fall of Functional Languages in Opt Technologies
lagenorhynque
0
130
Other Decks in Programming
See All in Programming
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
2
780
Amazon S3 NYJavaSIG 2024-12-12
sullis
0
130
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
200
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
200
見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理
kentaroutakeda
0
890
rails newと同時に型を書く
aki19035vc
5
610
テストコード書いてみませんか?
onopon
2
290
毎日13時間もかかるバッチ処理をたった3日で60%短縮するためにやったこと
sho_ssk_
1
500
menu基盤チームによるGoogle Cloudの活用事例~Application Integration, Cloud Tasks編~
yoshifumi_ishikura
0
130
Go の GC の不得意な部分を克服したい
taiyow
3
980
テストケースの名前はどうつけるべきか?
orgachem
PRO
1
180
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
390
Featured
See All Featured
Practical Orchestrator
shlominoach
186
10k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
940
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Facilitating Awesome Meetings
lara
50
6.2k
RailsConf 2023
tenderlove
29
960
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Transcript
Clojure REPL: The Good Parts Clojure REPL: The Good Parts
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" "github.com/lagenorhynque/duct.module.cambium"] :contributes ["github.com/japan-clojurians/clojure-site-ja"])
What makes a good REPL? What makes a good REPL?
「良い REPL 」が可能にしうるもの 「良い REPL 」が可能にしうるもの ⼿作業からプログラムへのスムーズな移⾏ 探索的プログラミング 効率的なテスト 使いやすいコードの設計
「良い REPL 」に必要なもの 「良い REPL 」に必要なもの 振る舞いが追加/ 変更できること メモリ上に状態を保存できること 出⼒をそのままコードで使えること
プロジェクトコードにアクセスできること 実⾏中のプログラムとやり取りできること REPL の状態とソースコードとを同期できること エディタと連携できること
「良い REPL 」を⽀える⾔語設計 「良い REPL 」を⽀える⾔語設計 豊かなリテラル表現 不変性(immutability) トップレベル定義が可能なこと ⾼い表現⼒
Further Reading Further Reading cf. REPL Driven Programming - tyano's
Tech Log Re:REPL-Driven Development // Speaker Deck Clojure でREPL 駆動開発を始めよう - Qiita The Ultimate Guide To Clojure REPLs Val on Programming: What makes a good REPL? Clojure/ClojureScript 関連リンク集 - Qiita