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
89
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_
23
14k
暗号について
silmin_
0
120
LinuxCommand入門
silmin_
0
310
LinuxCommand入門2
silmin_
0
210
Webについて
silmin_
3
140
ネットワークとは
silmin_
0
180
コンピュータとは|初心者向け資料
silmin_
1
130
ビットについて|入門者向け資料
silmin_
0
160
Other Decks in Technology
See All in Technology
AI 코딩 에이전트 더 똑똑하게 쓰기
nacyot
0
460
ビジネスとデザインとエンジニアリングを繋ぐために 一人のエンジニアは何ができるか / What can a single engineer do to connect business, design, and engineering?
kaminashi
2
860
30代からでも遅くない! 内製開発の世界に飛び込み、最前線で戦うLLMアプリ開発エンジニアになろう
minorun365
PRO
16
5k
Perl歴約10年のエンジニアがフルスタックTypeScriptに出会ってみた
papix
1
260
ペアーズにおける評価ドリブンな AI Agent 開発のご紹介
fukubaka0825
6
1.6k
3D生成AIのための画像生成
kosukeito
2
580
「経験の点」の位置を意識したキャリア形成 / Career development with an awareness of the “point of experience” position
pauli
4
130
Databricksで完全履修!オールインワンレイクハウスは実在した!
akuwano
0
140
AIエージェント開発手法と業務導入のプラクティス
ykosaka
9
2.6k
AIにおけるソフトウェアテスト_ver1.00
fumisuke
1
330
エンジニアリングで組織のアウトカムを最速で最大化する!
ham0215
1
280
Running JavaScript within Ruby
hmsk
3
430
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
54
5.5k
Statistics for Hackers
jakevdp
798
220k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
820
KATA
mclloyd
29
14k
Unsuck your backbone
ammeep
671
57k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
105
19k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.5k
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 !!!