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
55
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
TDD with RDD: Changed Developer Experience through Clojure/Lisp REPLs
lagenorhynque
0
22
My Favourite Book in 2024: Get Rid of Your Japanese Accent
lagenorhynque
0
40
do Notation Equivalents in JVM languages: Scala, Kotlin, Clojure
lagenorhynque
0
28
Exploring Collections in JVM Languages through Internals of map Function
lagenorhynque
0
29
Kotlin Meets Data-Oriented Programming
lagenorhynque
0
32
Introduction to Tree Representations in RDB 2024
lagenorhynque
0
55
Boundary between Mutability and Immutability
lagenorhynque
0
62
Learning Modern Web API Styles from IDL: REST, GraphQL, gRPC
lagenorhynque
0
97
Team Geek Revisited
lagenorhynque
0
79
Other Decks in Programming
See All in Programming
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
240
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
390
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
280
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
950
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
53
18k
バッチを作らなきゃとなったときに考えること
irof
1
430
昭和の職場からアジャイルの世界へ
kumagoro95
1
400
Code smarter, not harder - How AI Coding Tools Boost Your Productivity | Angular Meetup Berlin
danielsogl
0
100
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
130
React 19アップデートのために必要なこと
uhyo
5
780
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
170
Pulsar2 を雰囲気で使ってみよう
anoken
0
240
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
Music & Morning Musume
bryan
46
6.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
For a Future-Friendly Web
brad_frost
176
9.5k
Producing Creativity
orderedlist
PRO
344
39k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Why Our Code Smells
bkeepers
PRO
336
57k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Docker and Python
trallard
44
3.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
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