flang kkd1

26
1 関関関関関 Haskell 関関 関関関関関 西 #01 2014.09.06 @florets1 An introduction to Haskell for beginners

Upload: florets1

Post on 27-May-2015

410 views

Category:

Technology


0 download

DESCRIPTION

関西関数型道場#01発表資料

TRANSCRIPT

Page 1: Flang kkd1

1

関数型言語 Haskell 入門

関西関数型道場 #01

2014.09.06

@florets1

An introduction to Haskell for beginners

Page 2: Flang kkd1

2

自己紹介

@florets1

好きな言語: SQL

SQL でレコメンダー作ってみたよ

という論文を最近書きました。

お仕事:情シス

Haskell 勉強中です。

About me.

Page 3: Flang kkd1

3

宣伝Information

Page 4: Flang kkd1

4

宣伝Information

Page 5: Flang kkd1

5

ストーリーStory

関数型プログラミングとは

Haskell の基本的な使い方

高階関数の魅力

Page 6: Flang kkd1

6

関数型プログラミングとはWhat is functional programming?

関数型プログラミングとそうでないプログラミングにはどんな違いがあるのでしょうか。

手続き型プログラミングと比較してみます。

Page 7: Flang kkd1

7

手続き的なプログラミングProcedural programming

1 から n までの合計を求めるコード

Page 8: Flang kkd1

8

ループがない!

変数 i は? answer どこ?

慣れると読みやすい

関数型プログラミングFunctional programming

1 から n までの合計を求めるコード

Page 9: Flang kkd1

9

Haskell の基本的な使い方Haskell tutorial

関数

リスト

パターンマッチ

Page 10: Flang kkd1

10

関数を呼び出すCall functions

関数を真ん中に置ける数学っぽいね

Page 11: Flang kkd1

11

関数を定義するDefine a function

簡単だ!安心した

Page 12: Flang kkd1

12

リストというデータ構造Lists

わかる

Page 13: Flang kkd1

13

文字列は文字のリストStrings are just lists of characters.

Oh simple!

Page 14: Flang kkd1

14

こんなリストはだめLists are a homogenous data structure.

同じでないとだめなのかPython のリストとは違うんだ

Page 15: Flang kkd1

15

リストを連結するPutting two lists together

リストどうしを連結する

リストの先頭に要素を連結する

Page 16: Flang kkd1

16

リスト操作いろいろSome basic functions that operate on lists

Page 17: Flang kkd1

17

型宣言を明示的にAn explicit type declaration

Page 18: Flang kkd1

18

head 関数の型はこうなってるThe type of the head function

a は任意の型だよ

Page 19: Flang kkd1

19

パターンマッチ

階乗を求めるプログラム

Pattern matching

Page 20: Flang kkd1

20

sum と product は似ているCommon structure of functions

同じ形だ

Page 21: Flang kkd1

21

高階関数の魅力

コードを共通化できるねコードの意図がわかりやすい

Higher order functions: really powerful way of programming

関数の引数に関数を渡したり、返り値に関数を返したりできます

Page 22: Flang kkd1

22

参考文献Bibliography

Graham Hutton 著,山本和彦訳 「プログラミング Haskell 」

Miran Lipovaca 著,田中英行・村主崇行訳 「すごい Haskell たのしく学ぼう」

Page 23: Flang kkd1

23

宣伝Information

Page 24: Flang kkd1

24

宣伝Information

Page 25: Flang kkd1

25

宣伝Information

Page 26: Flang kkd1

26

宣伝Information