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 1.9 概要紹介
Search
OHTA Shogo
September 25, 2017
Programming
4
1.4k
Clojure 1.9 概要紹介
2017/09/25のLisp meetup #56の発表資料です。
OHTA Shogo
September 25, 2017
Tweet
Share
More Decks by OHTA Shogo
See All by OHTA Shogo
テンクーでのClojure活用事例
athos
0
350
軽量デバッグツールPostmortemの紹介.pdf
athos
1
200
Clojure 1.10 概要紹介
athos
3
650
やってみる!clojure.spec
athos
4
1k
kitchen-async: a promising (?) Promise library, or a poor man's core.async
athos
3
480
ここ最近のClojureScript
athos
5
1.7k
(= ? (+ nREPL Docker))
athos
0
530
clojure.specの話
athos
3
2.3k
clojure.specの話(仮)
athos
2
350
Other Decks in Programming
See All in Programming
Jakarta EE Meets AI
ivargrimstad
0
260
Yes, You Can Work on Rails & any other Gem
kaspth
0
110
「App Intent」よくわからんけどすごい!
rinngo0302
1
120
CDK引数設計道場100本ノック
badmintoncryer
2
550
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
190
React は次の10年を生き残れるか:3つのトレンドから考える
oukayuka
40
14k
SwiftでMCPサーバーを作ろう!
giginet
PRO
2
190
AI Agent 時代のソフトウェア開発を支える AWS Cloud Development Kit (CDK)
konokenj
6
970
階層化自動テストで開発に機動力を
ickx
1
410
Startups on Rails in Past, Present and Future–Irina Nazarova, RailsConf 2025
irinanazarova
0
290
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
26
8k
Claude Code で Astro blog を Pages から Workers へ移行してみた
codehex
0
140
Featured
See All Featured
The Language of Interfaces
destraynor
158
25k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
Designing for humans not robots
tammielis
253
25k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Visualization
eitanlees
146
16k
The Cult of Friendly URLs
andyhume
79
6.5k
Adopting Sorbet at Scale
ufuk
77
9.5k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Balancing Empowerment & Direction
lara
1
490
We Have a Design System, Now What?
morganepeng
53
7.7k
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$-+