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
70
Haskell Introduction
プログラミング言語のHaskellの紹介スライドです。
JOI2017夏季セミナーで作った資料な気がします。
mina
July 14, 2018
Tweet
Share
More Decks by mina
See All by mina
おうちGitLabのススメ
silmin_
3
870
Git入門
silmin_
21
12k
暗号について
silmin_
0
100
LinuxCommand入門
silmin_
0
250
LinuxCommand入門2
silmin_
0
180
Webについて
silmin_
3
120
ネットワークとは
silmin_
0
160
コンピュータとは|初心者向け資料
silmin_
0
87
ビットについて|入門者向け資料
silmin_
0
120
Other Decks in Technology
See All in Technology
歴史と背景から改めて振り返るVPC
shotashiratori
2
220
プロデザ! BY リクルートvol.22_様々なプロダクト経験の中で活きたPdMのスキル
recruitengineers
PRO
3
170
リクルート新人研修2024 テキスト生成AI活用
recruitengineers
PRO
10
420
20240906_JAWS_Yamanashi_#1_leap_beyond_the_AWS_all_certifications
tsumita
1
100
[RSJ24] Task Success Prediction for Open-Vocabulary Manipulation Based on Multi-Level Aligned Representations
keio_smilab
PRO
0
220
AWS IAM Identity Center議論会 〜 認証認可結合モデルと認証認可分離モデル / 20240827-jawsug-arch-iam_identity_center
opelab
3
320
Oracle Exadata Database Service(Dedicated Infrastructure):サービス概要のご紹介
oracle4engineer
PRO
0
9.3k
X-Correlation Injections (or How to break server-side contexts)
fransrosen
0
360
RAGHack: Kickoff and RAG 101
pamelafox
0
200
脆弱星に導かれて
nishimunea
1
1.5k
日経電子版から始まった内製開発の現在地と向き合っている課題/inhouse
nishiuma
0
230
デジタル化・DX推進あるある
y150saya
0
220
Featured
See All Featured
Web Components: a chance to create the future
zenorocha
308
41k
Side Projects
sachag
451
42k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
363
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
230
17k
Building Flexible Design Systems
yeseniaperezcruz
324
37k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
[RailsConf 2023] Rails as a piece of cake
palkan
44
4.6k
Principles of Awesome APIs and How to Build Them.
keavy
125
16k
The Language of Interfaces
destraynor
153
23k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
165
48k
Visualization
eitanlees
142
15k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
27
1.6k
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 !!!