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
96
Haskell Introduction
プログラミング言語のHaskellの紹介スライドです。
JOI2017夏季セミナーで作った資料な気がします。
mina
July 14, 2018
Tweet
Share
More Decks by mina
See All by mina
おうちGitLabのススメ
silmin_
3
1.1k
Git入門
silmin_
26
15k
暗号について
silmin_
0
130
LinuxCommand入門
silmin_
0
330
LinuxCommand入門2
silmin_
0
230
Webについて
silmin_
3
150
ネットワークとは
silmin_
0
190
コンピュータとは|初心者向け資料
silmin_
1
150
ビットについて|入門者向け資料
silmin_
0
170
Other Decks in Technology
See All in Technology
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
110
Tech-Verse 2025 Global CTO Session
lycorptech_jp
PRO
0
810
BrainPadプログラミングコンテスト記念LT会2025_社内イベント&問題解説
brainpadpr
1
170
MapStore at geOcom 2025: A Year in Review
simboss
PRO
0
100
Wasm元年
askua
0
160
WordPressから ヘッドレスCMSへ! Storyblokへの移行プロセス
nyata
0
200
なぜ私はいま、ここにいるのか? #もがく中堅デザイナー #プロダクトデザイナー
bengo4com
0
1.1k
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
280
Tech-Verse 2025 Keynote
lycorptech_jp
PRO
0
950
A2Aのクライアントを自作する
rynsuke
1
220
怖くない!はじめてのClaude Code
shinya337
0
200
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
190
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Navigating Team Friction
lara
187
15k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Gamification - CAS2011
davidbonilla
81
5.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
We Have a Design System, Now What?
morganepeng
53
7.7k
For a Future-Friendly Web
brad_frost
179
9.8k
Music & Morning Musume
bryan
46
6.6k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
Code Review Best Practice
trishagee
68
18k
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 !!!