Haskell Introduction

Ca26d099cfbe54faeaf86a6f551c56a1?s=47 mina
July 14, 2018

Haskell Introduction

プログラミング言語のHaskellの紹介スライドです。

JOI2017夏季セミナーで作った資料な気がします。

Ca26d099cfbe54faeaf86a6f551c56a1?s=128

mina

July 14, 2018
Tweet

Transcript

  1. Haskell Introduction mina @silmin_

  2. はじめに 「純粋関数型データ構造」という本で純粋関数型(ryを学んだ () これは ➢ 参照透過性 ➢ 永続性 ➢ 副作用のNASA

    ➢ なんでも関数 ➢ 簡潔かつ混沌() などが特徴(らしい) 今回はHaskellで実装した
  3. Haskell とは 芸術

  4. 型宣言 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 };
  5. 関数のいろいろ 関数名 引数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
  6. 実行してみる 関数合成

  7. 二分探索木(木の定義) data Tree a = Leaf | Node (Tree a)

    a (Tree a) Leaf - 末端ノードの先にいる    実質虚無 末  Node - ただのノード 子を持ってる a ... ... 葉 葉
  8. 二分探索木(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 型宣言 パターンマッチ
  9. 最後に 興味を持った方は「Haskell Platform」で検索  ※UNIX / Mac の方はパッケージがあるのでinstallしましょう Haskellには光と闇が存在します

  10. Haskell とは 芸術

  11. Thank you for listening !!!