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
340
軽量デバッグツールPostmortemの紹介.pdf
athos
1
200
Clojure 1.10 概要紹介
athos
3
640
やってみる!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
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
210
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
2
330
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
420
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
530
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
250
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
170
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.5k
すべてのコンテキストを、 ユーザー価値に変える
applism118
2
1.1k
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
120
RailsGirls IZUMO スポンサーLT
16bitidol
0
130
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
700
C++20 射影変換
faithandbrave
0
560
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
4 Signs Your Business is Dying
shpigford
184
22k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Speed Design
sergeychernyshev
32
1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Building Adaptive Systems
keathley
43
2.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
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$-+