Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Clojure 1.9 概要紹介
Search
OHTA Shogo
September 25, 2017
Programming
1.5k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Clojure 1.9 概要紹介
2017/09/25のLisp meetup #56の発表資料です。
OHTA Shogo
September 25, 2017
More Decks by OHTA Shogo
See All by OHTA Shogo
テンクーでのClojure活用事例
athos
0
430
軽量デバッグツールPostmortemの紹介.pdf
athos
1
220
Clojure 1.10 概要紹介
athos
3
710
やってみる!clojure.spec
athos
4
1.1k
kitchen-async: a promising (?) Promise library, or a poor man's core.async
athos
3
510
ここ最近のClojureScript
athos
5
1.8k
(= ? (+ nREPL Docker))
athos
0
600
clojure.specの話
athos
3
2.4k
clojure.specの話(仮)
athos
2
380
Other Decks in Programming
See All in Programming
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
310
残高管理から台帳サービスへの進化
artoy
0
160
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
550
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.5k
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
140
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
110
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
140
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
310
phperだってパンチカードでコーディングしたい
o0h
PRO
0
220
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
160
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
160
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
390
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
370
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
480
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Optimising Largest Contentful Paint
csswizardry
37
4k
A better future with KSS
kneath
240
18k
For a Future-Friendly Web
brad_frost
183
10k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
440
We Are The Robots
honzajavorek
0
390
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
BBQ
matthewcrist
89
10k
Transcript
$MPKVSF֓ཁհ -JTQNFFUVQPO !BUIPT
֓ཁ ‣ ͷϦϦʔε͕ؒۙ CFUB͕ઌिΑ͏͘ϦϦʔε DGϦϦʔε݄ BMQIBϦϦʔε݄ དྷ݄ͷ$POKʹ߹ΘͤͯϦϦʔεͷՄೳੑ
‣ pOBMϦϦʔεʹ͚ͯͷओཁͳมߋΛ͓͞Β͍
$MPKVSFͷओཁͳมߋ ‣ DMPKVSFTQFD ‣ ໊લۭ͖ؒͭϚοϓ OBNFTQBDFENBQT ‣ /B/*OG*OGͷ৽͍͠֎෦දݱ
DMPKVSFTQFD ‣ ड़ޠΛϕʔεʹͨ͠σʔλ༷ͷهड़"1* ৄࡉʮDMPKVSFTQFDʯͰݕࡧ ‣ ҎԼͷ༻్ʹ͑Δ υΩϡϝϯςʔγϣϯ
όϦσʔγϣϯ ౷ҰతͳΤϥʔϨϙʔτ ϓϩύςΟϕʔεςετ 4ࣜͷߏจղੳ ‣ ·ͩΞϧϑΝѻ͍ TQFDBMQIBͱͯ͠$MPKVSFຊମͱಠཱʹ։ൃ͞Ε͍ͯ͘༧ఆ
$MPKVSF͔Βͷߏ ‣ $MPKVSF͕TQFDBMQIBͱDPSFTQFDTBMQIBʹґଘ͢Δߏʹ ‣ TQFDBMQIB TQFDͷػೳఆٛ ‣ DPSFTQFDTBMQIB
$MPKVSFͷίΞϥΠϒϥϦͷεϖοΫఆٛ $MPKVSF TQFDBMQIB DPSFTQFDT BMQIB
DMKίϚϯυ ‣ ͜Ε·Ͱͷ$MPKVSFKBSͭΛμϯϩʔυͯ͘͠Ε͑ ͕ͨɺ͔ΒTQFDBMQIBͱDPSFTQFDBMQIBʹґଘ ‣ ґଘϥΠϒϥϦΛղܾͯ͠$MPKVSFΛ͑Δঢ়ଶʹ͢Δख ஈͱͯ͠DMKίϚϯυ͕༻ҙ͞Εͨ ‣ “brew install
clojure”Ͱ$MPKVSF͕͑ΔΑ͏ʹ ଞͷύοέʔδϚωʔδϟʹਵ࣌Ճ͞ΕΔ༧ఆ
TQFDϕʔεͷϚΫϩߏจνΣοΫ ‣ ϚΫϩʹରͯ͠εϖοΫΛఆ͓ٛͯ͘͠ͱɺίϯύΠϥ͕ ࣗಈతʹߏจ͕εϖοΫʹ߹͍ͬͯΔ͔ΛνΣοΫ ‣ ౷Ұతͳํ๏ͰΤϥʔΛฦͯ͘͠ΕΔ
ʲએʳ1JOQPJOUFS ‣ ࡞ͷεϖοΫΤϥʔϨϙʔλ1JOQPJOUFSͰɺεϖοΫ ΤϥʔΛ͔Γ͘͢දࣔͯ͘͠ΕΔʂ ϋΠϥΠτ͖ͭ
EPDͷTQFDαϙʔτ
ड़ޠؔͷ֦ॆ ‣ boolean? ‣ int? pos-int? neg-int? nat-int? ‣ double?
bigdec? ‣ ident? simple-ident? qualified-ident? ‣ simple-symbol? qualified-symbol? ‣ simple-keyword? qualified-keyword? ‣ bytes? ‣ indexed? ‣ uuid? uri? ‣ seqable? ‣ any?
໊લۭ͖ؒͭϚοϓ ‣ TQFD໊લۭ͖ؒͭͷΩʔϫʔυΛଟ༻ ϚοϓͷΩʔͱͯ͠͏ࡍʹɺҰҙͷҙຯΛ࣋ͨͤΔͨΊ ‣ ͯ͢ͷΩʔ͕ಉ໊͡લۭؒͰम০͞Ε͍ͯΔ߹ͷলུه๏ #:foo{:a 1, :b
2} (require ‘[foo.core :as foo]) #::foo{:a 1, :b 2} #::{:a 1, :b 2} {:foo/a 1, :foo/b 2} {:foo.core/a 1, :foo.core/b 2} {:user/a 1, :user/b 2}
໊લۭ͖ؒͭϚοϓͷଋറ ‣ ϚοϓͷଋറͰ໊લۭ͖ؒͭͷΩʔϫʔυΛѻ͍ ͍͢Α͏ʹ
/B/*OG*OGͷ৽͍͠֎෦දݱ ‣ ৽ͨʹ##ͱ͍͏ϦʔμʔϚΫϩ͕Ճ͞Εͨ /B/##NaN *OpOJUZ##Inf *OpOJUZ##-Inf ‣
ʹఏҊ͞Εɺӽ͠ͰΑ͏͘࠾
ͦͷଞͷมߋ ‣ *reader-resolver*ͰγϯϘϧΩʔϫʔυͷղܾͷ ํ͕QMVHHBCMFʹ ‣ InstϓϩτίϧͷՃ ‣ swap-vals! reset-vals! ‣
halt-whenτϥϯεσϡʔα
·ͱΊ ‣ $MPKVSFϦϦʔε͕ؒۙ ‣ DMPKVSFTQFDΛத৺ͱͨ͠มߋ͕Γࠐ·Εͨ ‣ TQFDࣗମ·ͩΞϧϑΝѻ͍ͷ·· ͳͷͰɺ༷มߋ ͋Γ͏Δ ͕ͩɺ͕Ұ୴ϦϦʔε͞ΕΕϓϩμΫτ
Ͱຊ֨తʹΘΕ࢝ΊΔ͜ͱ͕༧͞ΕΔ
ࢀߟจݙ ‣ DIBOHFTNE IUUQTHJUIVCDPNDMPKVSFDMPKVSFCMPCNBTUFSDIBOHFTNEDIBOHFTUPDMPKVSFJOWFSTJPO ‣ "CPVUTQFD IUUQTDMPKVSFPSHBCPVUTQFD ‣
3FBEQSJOUSPVOEUSJQGPS *OpOJUZBOE/B/ IUUQTEFWDMPKVSFPSHKJSBCSPXTF$-+