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
Livesense Inc.
PRO
April 23, 2014
Technology
0
40
Clojure in General #TechLunch
2012/01/18(水) @ Livesense TechLunch
発表者:佐藤 洋輔
Livesense Inc.
PRO
April 23, 2014
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
2.5k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
53
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
1.5k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
440
26新卒_総合職採用_会社説明資料
livesense
PRO
0
11k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
1
38k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
13k
中途セールス職_会社説明資料
livesense
PRO
0
270
EM候補者向け転職会議説明資料
livesense
PRO
0
130
Other Decks in Technology
See All in Technology
エンジニアが主導できる組織づくり ー 製品と事業を進化させる体制へのシフト
ueokande
1
100
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.8k
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
2
270
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
490
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
270
AIエージェントで90秒の広告動画を制作!台本・音声・映像・編集をつなぐAWS最新アーキテクチャの実践
nasuvitz
3
350
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3.2k
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
200
AI時代を生き抜くエンジニアキャリアの築き方 (AI-Native 時代、エンジニアという道は 「最大の挑戦の場」となる) / Building an Engineering Career to Thrive in the Age of AI (In the AI-Native Era, the Path of Engineering Becomes the Ultimate Arena of Challenge)
jeongjaesoon
0
250
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
660
「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド
zozotech
PRO
0
570
KotlinConf 2025_イベントレポート
sony
1
140
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Done Done
chrislema
185
16k
Visualization
eitanlees
148
16k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
930
KATA
mclloyd
32
14k
We Have a Design System, Now What?
morganepeng
53
7.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Optimizing for Happiness
mojombo
379
70k
Typedesign – Prime Four
hannesfritz
42
2.8k
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!!!