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 Introduction
Search
mina
July 14, 2018
Technology
0
79
Haskell Introduction
プログラミング言語のHaskellの紹介スライドです。
JOI2017夏季セミナーで作った資料な気がします。
mina
July 14, 2018
Tweet
Share
More Decks by mina
See All by mina
おうちGitLabのススメ
silmin_
3
930
Git入門
silmin_
23
13k
暗号について
silmin_
0
110
LinuxCommand入門
silmin_
0
260
LinuxCommand入門2
silmin_
0
180
Webについて
silmin_
3
130
ネットワークとは
silmin_
0
160
コンピュータとは|初心者向け資料
silmin_
1
93
ビットについて|入門者向け資料
silmin_
0
140
Other Decks in Technology
See All in Technology
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
330
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
120
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
300
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
110
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
SRE×AIOpsを始めよう!GuardDutyによるお手軽脅威検出
amixedcolor
0
150
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
360
Terraform Stacks入門 #HashiTalks
msato
0
360
Platform Engineering for Software Developers and Architects
syntasso
1
520
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
複雑なState管理からの脱却
sansantech
PRO
1
150
Featured
See All Featured
Speed Design
sergeychernyshev
25
620
Unsuck your backbone
ammeep
668
57k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
890
Navigating Team Friction
lara
183
14k
Adopting Sorbet at Scale
ufuk
73
9.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Ruby is Unlike a Banana
tanoku
97
11k
Facilitating Awesome Meetings
lara
50
6.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Happy Clients
brianwarren
98
6.7k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Transcript
Haskell Introduction mina @silmin_
はじめに 「純粋関数型データ構造」という本で純粋関数型(ryを学んだ () これは ➢ 参照透過性 ➢ 永続性 ➢ 副作用のNASA
➢ なんでも関数 ➢ 簡潔かつ混沌() などが特徴(らしい) 今回はHaskellで実装した
Haskell とは 芸術
型宣言 Haskellは美しい data Color = Red | Blue | Yellow
toJpn :: Color -> String toJpn Red = “aka” toJpn Blue = “ao” toJpn Yellow = “ki” main = print $ toJpn Red パターンマッチ 関数実行 & 出力 enum Color { Red, Blue, Yellow };
関数のいろいろ 関数名 引数1 引数2.......で呼び出し temp a b -> a `temp` b とも書ける (
1 + ) , ( 5 * ) : 一引数関数 ( 1 + ) . ( 5 * ) : 関数合成 ( 5倍して1足す関数) f x y = print $ gcd x y f x = print . gcd x f = (print .) . gcd
実行してみる 関数合成
二分探索木(木の定義) data Tree a = Leaf | Node (Tree a)
a (Tree a) Leaf - 末端ノードの先にいる 実質虚無 末 Node - ただのノード 子を持ってる a ... ... 葉 葉
二分探索木(search関数) search::Ord a => Tree a -> a -> Bool
search Leaf b = False search (Node tl a tr) b = if b < a then search tl b else if b > a then search tr b else True 型宣言 パターンマッチ
最後に 興味を持った方は「Haskell Platform」で検索 ※UNIX / Mac の方はパッケージがあるのでinstallしましょう Haskellには光と闇が存在します
Haskell とは 芸術
Thank you for listening !!!