狠狠撸

狠狠撸Share a Scribd company logo
関数型言語 Haskell 入門 
関西関数型道場 #01 
2014.09.06 
@florets1 
1 
An introduction to Haskell for beginners
2 
自己紹介 
@florets1 
お仕事:情シス 
Haskell勉強中です。 
About me. 
好きな言語:SQL 
SQLでレコメンダー作ってみたよ 
という論文を最近書きました。
3 
宣伝 
Information
4 
宣伝 
Information
ストーリー 
Story 
関数型プログラミングとは 
Haskellの基本的な使い方 
高階関数の魅力 
5
関数型プログラミングとは 
What is functional programming? 
関数型プログラミングとそうで 
ないプログラミングにはどんな 
違いがあるのでしょうか。 
手続き型プログラミングと比較 
してみます。 
6
7 
手続き的なプログラミング 
Procedural programming 
1からnまでの合計を求めるコード
8 
関数型プログラミング 
Functional programming 
1からnまでの合計を求めるコード 
ループがない! 
変数 i は? answer どこ? 
慣れると読みやすい
9 
Haskellの基本的な使い方 
Haskell tutorial 
関数 
リスト 
型 
パターンマッチ
10 
関数を呼び出す 
Call functions 
関数を真ん中に置ける 
数学っぽいね
11 
関数を定義する 
Define a function 
簡単だ!安心した
12 
リストというデータ構造 
Lists 
わかる
13 
文字列は文字のリスト 
Strings are just lists of characters. 
Oh simple!
14 
こんなリストはだめ 
Lists are a homogenous data structure. 
同じでないとだめなのか 
Pythonのリストとは違うんだ
15 
リストを連結する 
Putting two lists together 
リストどうしを連結する 
リストの先頭に要素を連結する
16 
リスト操作いろいろ 
Some basic functions that operate on lists
17 
型宣言を明示的に 
An explicit type declaration
18 
head関数の型はこうなってる 
The type of the head function 
a は任意の型だよ
19 
パターンマッチ 
Pattern matching 
階乗を求めるプログラム
20 
sum と product は似ている 
Common structure of functions 
同じ形だ
Higher order functions: really powerful way of programming 
関数の引数に関数を渡したり、返り値に関数を返したりできます 
21 
高階関数の魅力 
コードを共通化できるね 
コードの意図がわかりやすい
22 
参考文献 
Bibliography 
Graham Hutton 著,山本和彦訳 「プログラミング Haskell」 
Miran Lipovaca著,田中英行?村主崇行訳 「すごいHaskell たのしく学ぼう」
23 
宣伝 
Information
24 
宣伝 
Information
25 
宣伝 
Information
26 
宣伝 
Information

More Related Content

Flang kkd1