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
54
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
13
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
1.4k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
390
26新卒_総合職採用_会社説明資料
livesense
PRO
0
8.8k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
1
27k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
12k
中途セールス職_会社説明資料
livesense
PRO
0
250
EM候補者向け転職会議説明資料
livesense
PRO
0
120
Other Decks in Technology
See All in Technology
CursorによるPMO業務の代替 / Automating PMO Tasks with Cursor
motoyoshi_kakaku
1
480
データプラットフォーム技術におけるメダリオンアーキテクチャという考え方/DataPlatformWithMedallionArchitecture
smdmts
5
660
Github Copilot エージェントモードで試してみた
ochtum
0
110
AIとともに進化するエンジニアリング / Engineering-Evolving-with-AI_final.pdf
lycorptech_jp
PRO
0
120
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
1.2k
Lambda Web Adapterについて自分なりに理解してみた
smt7174
5
130
Oracle Audit Vault and Database Firewall 20 概要
oracle4engineer
PRO
3
1.7k
変化する開発、進化する体系時代に適応するソフトウェアエンジニアの知識と考え方(JaSST'25 Kansai)
mizunori
1
240
LangSmith×Webhook連携で実現するプロンプトドリブンCI/CD
sergicalsix
1
120
Oracle Cloud Infrastructure:2025年6月度サービス・アップデート
oracle4engineer
PRO
2
280
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
2
620
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
110
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Building Adaptive Systems
keathley
43
2.6k
A Modern Web Designer's Workflow
chriscoyier
694
190k
Adopting Sorbet at Scale
ufuk
77
9.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
How to Ace a Technical Interview
jacobian
277
23k
The Pragmatic Product Professional
lauravandoore
35
6.7k
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!!!