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
Haskell 始めました
Search
Yutaka Kinjo
March 02, 2014
Technology
440
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Haskell 始めました
株式会社OCC 金城裕
社内勉強会用
Yutaka Kinjo
March 02, 2014
More Decks by Yutaka Kinjo
See All by Yutaka Kinjo
エンディングまで連れて行くプレイ体験 - unity 1 week 共有会 #7
yutakakinjyo
0
200
調査対象■■■山脈 - unity1week online 共有会 #2 -
yutakakinjyo
0
1k
無限跳躍 - unity1week online 共有会 -
yutakakinjyo
2
940
Structure of English
yutakakinjyo
1
130
才能がなくても確実に学習するためのオレオレ学習法
yutakakinjyo
2
2.2k
自動化勉強会 vol.1
yutakakinjyo
1
94
github導入した話.pdf
yutakakinjyo
1
250
Other Decks in Technology
See All in Technology
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
4
620
ルールやカスタム機能、どう活かす?ハンズオンで体感するIBM Bobの出力コントロール
muehara
1
130
[モダンアプリ勉強会]今更聞けないGit/GitHub入門
tsukuboshi
0
370
日本 Fintech 未来予測レポート 2027〜2028年(オリジナル版)
8maki
0
2k
タクシーアプリ『GO』の実践的データ活用
mot_techtalk
3
190
2026TECHFRESH畢業分享會 - AI 時代的人生存檔點
line_developers_tw
PRO
0
850
RSA暗号を手計算したくなること、ありますよね?? (20260615_orestudy6_rsa)
thousanda
0
270
AI駆動開発を通して感じた、 AI時代のデザイナーの役割変化
whisaiyo
1
380
How Timee Delivers Day 1 Production Ready LLM Features
tomoyks
0
140
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
840
AWSシリコン最前線 〜AI時代のチップ選択を読み解く〜
htokoyo
2
490
小さくはじめるSLI/SLO ~育てながら組織に定着させる実践知~ / Starting Small with SLI/SLOs: Building Adoption Through Continuous Growth
nari_ex
7
1.8k
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2.1k
Mobile First: as difficult as doing things right
swwweet
225
10k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
200
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
850
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
WCS-LA-2024
lcolladotor
0
630
Transcript
HASKELL࢝Ί·ͨ͠ גࣜձࣾ OCC Yutaka Kinjo
֓ཁ abstract
•Haskell ͱ •७ਮؔܕݴޠ •cɺjavaɺrubyͳͲͱ͍ͩͿҧ͏ •(ͳʹ͔ɺՄೳੑΛײ͡Δ!!)
•ͨͿΜɺࣾͰৄ͍͠ਓ͍ͳ͍ •Haskell ͷϓϩάϥϛϯάύϥμΠϜڵຯਂ ͍ •ৄ͘͠ͳ͓ͬͯ͘ͱཱͯΔ͔ •ͪΐͬͱͬͯΈͯɺ໘ന͔ͬͨ
͜ΕͰษڧͪ͏
֊ͷܭࢉ factorial
fac 0 = 1 fac n = n * fac(n-1)
main = print (fac 42) 1405006117752879898543142606244511569936384000000000 $ ghc fac.hs $ ./fac
fac 0 = 1 fac n = n * fac(n-1)
main = print (fac 42) 引数のパターン を記述できる fac n = if n == 0 then 1 else n * fac(n-1) if文かかなくてもいい
FizzBuzz
None
ແݶϦετ Infinite list
list = [1,2,3,4] inf_list = [1..]
ԆධՁ lazy evaluation
inf_list = [1..] take 3 inf_list [1,2,3]
inf_list = [1..] take 52 inf_list [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,3 9,40,41,42,43,44,45,46,47,48,49,50,51,52]
ΧϦʔԽ currying
•Haskell ͷ࣮ؔ 1 ͭͷҾ͔͠औΒͳ͍ • ෳͷҾΛͱΔ࣮ؔΧϦʔԽ͞Ε͍ͯΔ
max 1 2 > 2 ෳͷҾΛͱΔؔΧϦʔԽ͞Ε͍ͯΔ
(max 1) 2 > 2 ͜͏͡Ό!!
1と引数を比べる関数になる (max 1) 2
これは関数 (max 1)
部分適応された関数 (max 1) デフォルトですでに 1が設定された max
関数名をつけれる let maxOne = (max 1) maxOne 2 > 2
ちょっといじる let maxOne = (max 1.0) maxOne 0.5 > 1.0
࣮༻ྫ application
•৽మॅۚιϦϡʔγϣϯζ • ࣌ՁձܭύοέʔδʮBancMeasureʯ •GREE • ͷKVSσʔλϕʔεͷཧ • ը૾αʔόͷϑϩϯτΤϯυ
·ͱΊ summary
• ؒҧͬͯͨΒ͝ΊΜͳ͍͞ • for จ ࠶ؼͰফ͑ͨ • if จ ύλʔϯϚονͰফ͑ͨ
• ͳΜ͔ɺΧϦʔԽมଶ • ࣮༻ྫ࣮͋Δ • ূ໌ͱ͔Ͱ͖ͦ͏ • (ͳʹ͔ɺՄೳੑΛײ͡Δ!!)
ࢀߟ reference
• http://maoe.hatenadiary.jp/entry/2013/12/12/195322 • http://itpro.nikkeibp.co.jp/article/COLUMN/20130112/449224/ • ॻ੶ : ͍͢͝Haskell ͨͷֶ͘͠΅͏