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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Seiya
July 14, 2018
Technology
0
110
Haskell Introduction
プログラミング言語のHaskellの紹介スライドです。
JOI2017夏季セミナーで作った資料な気がします。
Seiya
July 14, 2018
Tweet
Share
More Decks by Seiya
See All by Seiya
ATProtocol ざっくり概要把握してみた @ DWeb Tokyo Meetup #2
silmin_
0
20
おうちGitLabのススメ
silmin_
3
1.6k
Git入門
silmin_
32
21k
暗号について
silmin_
0
170
LinuxCommand入門
silmin_
0
380
LinuxCommand入門2
silmin_
0
270
Webについて
silmin_
3
190
ネットワークとは
silmin_
0
240
コンピュータとは|初心者向け資料
silmin_
1
190
Other Decks in Technology
See All in Technology
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
300
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
190
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
3
620
Generative UI を試そう!A2-UIでAIエージェントにダッシュボードを作らせてみた
kamoshika
0
190
pool.ntp.orgに ⾃宅サーバーで 参加してみたら...
tanyorg
1
2.9k
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.5k
意外と知ってそうでしらない、Reserved Instances の世界
mappie_kochi
0
110
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
56
47k
React 19時代のコンポーネント設計ベストプラクティス
uhyo
9
3.5k
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
280
プロポーザルに込める段取り八分
shoheimitani
2
800
量子クラウドシステムと運用
oqtopus
0
170
Featured
See All Featured
Designing Experiences People Love
moore
144
24k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
210
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
55
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
330
The SEO Collaboration Effect
kristinabergwall1
0
360
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
130
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
420
30 Presentation Tips
portentint
PRO
1
240
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
The Language of Interfaces
destraynor
162
26k
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 !!!