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
1
430
Haskell 始めました
株式会社OCC 金城裕
社内勉強会用
Yutaka Kinjo
March 02, 2014
Tweet
Share
More Decks by Yutaka Kinjo
See All by Yutaka Kinjo
エンディングまで連れて行くプレイ体験 - unity 1 week 共有会 #7
yutakakinjyo
0
190
調査対象■■■山脈 - unity1week online 共有会 #2 -
yutakakinjyo
0
1k
無限跳躍 - unity1week online 共有会 -
yutakakinjyo
2
920
Structure of English
yutakakinjyo
1
130
才能がなくても確実に学習するためのオレオレ学習法
yutakakinjyo
2
2.1k
自動化勉強会 vol.1
yutakakinjyo
1
88
github導入した話.pdf
yutakakinjyo
1
240
Other Decks in Technology
See All in Technology
1万人を変え日本を変える!!多層構造型ふりかえりの大規模組織変革 / 20260108 Kazuki Mori
shift_evolve
PRO
5
770
#22 CA × atmaCup 3rd 1st Place Solution
yumizu
1
130
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
170
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
21k
Data Hubグループ 紹介資料
sansan33
PRO
0
2.5k
コールドスタンバイ構成でCDは可能か
hiramax
0
130
AWS re:Invent 2025 を振り返る
kazzpapa3
2
110
形式手法特論:コンパイラの「正しさ」は証明できるか? #burikaigi / BuriKaigi 2026
ytaka23
15
4.1k
AWS re:Inventre:cap ~AmazonNova 2 Omniのワークショップを体験してきた~
nrinetcom
PRO
0
130
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
410
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.5k
Next.js 16の新機能 Cache Components について
sutetotanuki
0
210
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.9k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
47
Designing for humans not robots
tammielis
254
26k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
84
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Thoughts on Productivity
jonyablonski
73
5k
Building an army of robots
kneath
306
46k
HDC tutorial
michielstock
1
300
Git: the NoSQL Database
bkeepers
PRO
432
66k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
220
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 ͨͷֶ͘͠΅͏