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 in General #TechLunch
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Livesense Inc.
April 23, 2014
Technology
0
46
Clojure in General #TechLunch
2012/01/18(水) @ Livesense TechLunch
発表者:佐藤 洋輔
Livesense Inc.
April 23, 2014
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
27新卒_総合職採用_会社説明資料
livesense
0
3.6k
27新卒_Webエンジニア職採用_会社説明資料
livesense
0
7.8k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
0
270
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
1
1.7k
データ基盤の負債解消のためのリプレイス
livesense
0
570
26新卒_総合職採用_会社説明資料
livesense
0
13k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
2
57k
26新卒_Webエンジニア職採用_会社説明資料
livesense
1
13k
中途セールス職_会社説明資料
livesense
0
300
Other Decks in Technology
See All in Technology
テストプロセスにおけるAI活用 :人間とAIの共存
hacomono
PRO
0
180
スピンアウト講座01_GitHub管理
overflowinc
0
1.5k
韓非子に学ぶAI活用術
tomfook
3
990
LLMに何を任せ、何を任せないか
cap120
10
5.8k
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
370
スピンアウト講座02_ファイル管理
overflowinc
0
1.4k
Phase02_AI座学_応用
overflowinc
0
3k
Sansanの認証基盤を支えるアーキテクチャとその振り返り
sansantech
PRO
1
100
形式手法特論:SMT ソルバで解く認可ポリシの静的解析 #kernelvm / Kernel VM Study Tsukuba No3
ytaka23
1
810
MCPで決済に楽にする
mu7889yoon
0
120
Phase08_クイックウィン実装
overflowinc
0
1.9k
Phase01_AI座学_基礎
overflowinc
0
4.1k
Featured
See All Featured
The Language of Interfaces
destraynor
162
26k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
150
My Coaching Mixtape
mlcsv
0
86
A designer walks into a library…
pauljervisheath
210
24k
How to train your dragon (web standard)
notwaldorf
97
6.6k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.5k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
220
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
490
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
The Cult of Friendly URLs
andyhume
79
6.8k
Ruling the World: When Life Gets Gamed
codingconduct
0
180
Transcript
Clojure in General Stairway to a L!p hacker
Table of Contents 1ɾClojureͱ 2ɾͯ͢ γʔέϯεͰ͋Δ 3ɾίʔυͱσʔλ 4ɾकഁ
1ɾClojureͱ
ؔܕݴޠ ; => ·ͨྲྀߦΓͷͰ͢ Lispํݴ ; => ׅހύϥμΠε(^o^) Rich Hickey
; => ಡΈํ͕ɻɻɻ 2007σϏϡʔ ; => nil ཧΑΓ࣮༻ੑॏࢹ ; => Haskell
༷ʑͳݴޠ࣮ JVMݴޠͱͯ͠༗໊͕ͩɺ࣮ඇґଘ Clojure ; => JVM࣮ ClojureCLR ; => .Net࣮
ClojureScript ; => JavaScript࣮
༷ʑͳϑϨʔϜϫʔΫ Noir ; => WebΞϓϦέʔγϣϯϑϨʔϜϫʔΫ Korma ; => RDBMSʢવO/RͰͳ͍ʣ SeeSaw
; => Swing Cascalog ; => Hadoop 2007ʹͰ͖ͨݴޠͱࢥ͑ͳ͍ॆ࣮ͿΓ
LispͷྗΛࣦΘͳ͍ ݶΓʹ͓͍ͯ ग़དྷΔ͚ͩLispΒ͘͠ͳ͘ car, cdr ; => ͕͢͞ʹաڈϋʔυґଘɻɻɻ ׅހলུ ;
=> ΄Μͷͪΐͬͱ(^_^;) ۭϦετධՁ ; => Clojureͷํ͕ݫີ
2ɾͯ͢ γʔέϯεͰ͋Δ
͕ͯ͢ϦετͷLispͱҧ͍ɺClojure ͷͯ͢γʔέϯε γʔέϯε΄ͱΜͲͷू߹ܕΛந Խͨ͠ͷ first, rest, consΛ࣮
LispͷϦετίϯεηϧ͕ͩɺ ClojureͷϦετ࣮ඇґଘ ( peek '(1 2 3)) ; => 1
( peek [1 2 3]) ; => 3
Ͳͷ͘Β͍͔ͯ͢
͕ͯ͢࿈ྻͳ JavaScript͞Μͷ߹
͕ͯ͢γʔέϯεͳ Clojure͞Μͷ߹
; => ͜ͷਗ਼ʑ͍͠·Ͱͷ ͯͬ͢Γ͕ Կͷʹཱͭͷ͔ɻɻɻ
3ɾίʔυͱσʔλ
ؔɺϚΫϩɺಛघܗࣜɺԋࢉࢠɺ ͦͷ͕ͯ͢΄ͱΜͲಉ͡Α͏ʹѻ͑ Δ μοΫλΠϓͷڀۃܥ ίʔυͱσʔλͷڥք͢Βᐆດ
4ɾकഁ
ClojureʢLispʣͷจ๏Clean Code తʹ͍͏ͱNGͳॻ͖ํΛॿ͍ͯ͠Δ ͍ҾϦετ ҾͷॱংʹΑΔڧ͍ҙຯ͚
; => جຊΛकΔ͚ͩͰ ಘΒΕͳ͍ྗ͕ ͋Δͱ͍͏͜ͱ
ߏจ͕؆ૉͳͨΊϝλϓϩάϥϛϯά͕ ༰қ ԋࢉࢠɺ΄΅ͳΜͰ࠶ఆ͕ٛͰ ͖Δ ҙຯෆ໌ʹͳΓ͗͢ͳ͍Α͏ϦʔμʔϚΫ ϩॻͰ͖ͳ͍ʢLispͱରরతʣ ෳࡶͳߏจΛҥ͢ΔRubyɺ؆ܿͳߏจ Λ֦ு͢ΔLisp
; => ݴޠͦͷͷΛ ഁյ͢ΔΑ͏ͳڧ͍ྗʹ େ͖ͳ͕͏
ΦϒδΣΫτࢦݴޠɺෳࡶ͗͢ΔߏจΛε Ϛʔτʹݟ͔͚ͤΔͨΊͷ࣮ʹखؒΛऔΒΕ ա͍͗ͯΔ ͦͯͦ͠ͷ࣮ʹΑΓ·ͨҰίʔυͷෳࡶ͞ ͕૿͍ͯ͠Δ ݱࡏCIπʔϧͳͲͰͦͷෳࡶ͔͞Βੜ·ΕΔ ϛεΛٵऩ͢Δํʹಈ͍͍ͯΔ ͰͦͷπΪϋΪ͞ɺ͔ͭͯίʔυͷγϯϓ ϧ͞ΛઃఆϑΝΠϧͰ୲อ͍ͯͨ࣌͠Λኲኵ ͱͤ͞Δ
; => ͦΖͦΖॅΈ׳Εͨ ॴ͔ΒΕΔͷʹ ͍͍࣌ظ͔͠Εͳ͍
͓·͚: ඌݺग़࠷దԽ ؔඌͰͷؔݺग़ɺݺग़ݩͷϦιʔεΛ DEALLOCATE͢Δ͜ͱͰ࠷దԽͰ͖Δ JVM͕ະରԠ Scalaಠࣗʹඌ࠶ؼ࠷దԽʢTCOʣΛ࣮ Clojurerecur...loopಛघܗࣜΛ༻ҙ
ͳͥClojureࣗಈͰ TCO͠ͳ͍͔ ؤுͬͯඌ“࠶ؼ”࠷దԽ͔͠Ͱ͖ͳ͍͔Β ໌ࣔతͳߏจΛ༻ҙ͢Δ͜ͱͰ࠷దԽνΣοΫ Ͱ͖Δ͔ΒʢScala2.8͔ΒΞϊςʔγϣϯͰ ޙଓʣ ࠶ؼઌΛؔͰॊೈʹઃఆͰ͖Δ͔Βʢ࠶ؼ ͷ୯Ґ͕খ͍͞߹ɺผؔఆٛμϧ͍ʣ
࣍ճ༧ࠂ
Git "#$buted Version Control Sy#em
Ͱͦͷޙ ClojureScript ClojureϑϨʔϜϫʔΫ ʹΔ༧ఆ
Bye!!!