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
44
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新卒_総合職採用_会社説明資料
livesense
PRO
0
2.5k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
6.5k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
180
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
1.6k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
550
26新卒_総合職採用_会社説明資料
livesense
PRO
0
12k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
2
51k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
13k
中途セールス職_会社説明資料
livesense
PRO
0
290
Other Decks in Technology
See All in Technology
Tebiki Engineering Team Deck
tebiki
0
24k
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
600
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
240
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
360
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
640
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
450
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
150
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.3k
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.4k
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
400
Digitization部 紹介資料
sansan33
PRO
1
6.8k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
14k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
56
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Raft: Consensus for Rubyists
vanstee
141
7.3k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
210
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
250
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
110
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!!!