introduction to haskell@open source conference 2007 hokkaido

Post on 22-May-2015

2.317 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

A brief introduction to Haskell. The purpose of the presentation is "Read Hutton's Haskell book to learn Haskell".

TRANSCRIPT

Haskell紹介池上 大介

ikegami@madscientist.jpHaskell同好会

オープンソースカンファレンス2007 Hokkaido北海道大学学術交流会館

2006-06-30 14:30-15:15 第5会議室

1

何を期待していますか?

Haskell とは何ですか? 処理系(ghcやhugsなど)を お持ちですか? モナドを使えますか? っていうかHaskellマニア?

2

知りたいことは何?関数型言語について

Haskellそのもの

ライブラリ

Haskellの学び方

ビジネス

その他

3

知りたいことは何?関数型言語について

Haskellそのもの

ライブラリ

Haskellの学び方

ビジネス

その他

本日の発表原稿

3

知りたいことは何?

その他

21%

ビジネス

18%Haskellの学び方

13%

ライブラリ

Haskellそのもの

37%

関数型言語について

5%

関数型言語について

Haskellそのもの

ライブラリ

Haskellの学び方

ビジネス

その他

本日の発表原稿

3

キャッチボール

4

キャッチボール

拾われた方はお手数ですが、持ってきてください。

4

ゲスト自己紹介

どちらからお越しですか ニックネームは Haskell 暦は

5

ゲスト自己紹介

どちらからお越しですか ニックネームは Haskell 暦は

40分おつきあいいただきます。拍手をどうぞ。

5

ゲスト自己紹介

どちらからお越しですか ニックネームは Haskell 暦は

お荷物があれば、一旦、取りに戻られてください。

40分おつきあいいただきます。拍手をどうぞ。

5

本日のお題

Haskellとは何か 2007年5月の状況 Haskell in Practice How to learn? Live Q & A

6

質問の時間があります暖めておいてください

7

その名は Haskell

H は本州の H H は北海道の H H は平和の H H は Happy の H

8

趣が違うのが Haskell

Chaos の C Jail の J Race の R Piston の P

Harmony の H9

Haskellエルは2つ

Haskell Brooks Curry (September 12, 1900, Millis, Massachusetts – September 1, 1982, State College, Pennsylvania) was an American mathematician and logician.

from en.Wikipedia.org

10

Haskell の特徴 純粋関数型言語

強くて柔軟な「型」

遅延評価

プログラムは関数であり、全ての断片も関数である

変数を持たない 再代入を許さない x:=1; x++;

無限は無限としてさっぱりと扱うtake 2 [1..] --→ [1, 2]

プログラムの断片と断片が、きちんと繋がるか?

型を書くこと = プログラムの設計図後で説明

11

純粋関数型言語

強くて柔軟な「型」

遅延評価

Haskell の特徴

Simple

Smart

Clean

12

一方、皆様がお使いのプログラミング言語

にはこんな危険性があります

13

混ぜちゃえばわからない

手続き型プログラミング言語の場合C, Java, Ruby, etc...プログラムは、断片からできている各断片は、「きちんと」実装されているように見えるのかな?テストに合格すればいい混ぜちゃえばわからない

14

混ぜちゃえばわからない

手続き型プログラミング言語の場合C, Java, Ruby, etc...プログラムは、断片からできている各断片は、「きちんと」実装されているように見えるのかな?テストに合格すればいい混ぜちゃえばわからない

こんな話を、いま、北海道で言いたくありません

14

Haskellはこの問題を解決します

15

Haskell と強い型付け

プログラムは関数断片も関数

F = m a

N = kg m/s 2

運動第2法則

MKS単位系ニュートン

断片と断片を繋ぐとき、型を確認

16

Haskellが運ぶ幸せ

プログラムを書く インタプリタに渡すインタプリタが型(=単位)検査/推論インタプリタが型(=単位)検査/推論

全自動17

ここまでのまとめ

Haskell は奇抜 Haskell は全自動 Haskell は新しい!

紳士淑女のたしなみ学ぶべき言語

18

Haskell ってどんな感じ?

sum [] = 0 sum (x : xs) = x + sum xs

関数(=プログラム断片)定義

ϕsum = 0

sum xxs

= x + sum xs

評価sum [1, 2, 3] = { applying sum } 1 + (sum [2, 3])= { applying sum } 1 + (2 + sum [3])= { applying sum } 1 + (2 + (3 + sum []))= { applying sum } 1 + (2 + (3 + 0))= 6

19

Haskell ってどんな感じ?

qsort [] = [] qsort (x : xs) = qsort smaller ++ [x] ++ qsort largerwhere smaller = [y | y <- xs, y <= x] larger = [z | z <- xs, z > x]

関数(=プログラム断片)定義 評価qsort [3, 5, 1] = { applying qsort }qsort [1] ++ [3] ++ qsort [5] = { applying qsort }(qsort [] ++ [1] ++ qsort [])++ [3] ++(qsort [] + [5] ++ qsort [])= { applying qsort }([] ++ [1] ++ [])++ [3] ++([] ++ [5] ++ [])= { applying ++, often }[1, 3, 5]

[y | y <- xs, y <= x]

[y | y ∈ xs, y ≦ x]

20

なにもかもが関数

関数かわいいよ、関数 技術ではなく、思考変換 技ではなく「道」 短く単純に簡潔に 「わび/さび」 北海道はでっかいどう

まとめ

21

今年のHaskellはどうなっているか?

22

Haskell Communities and Activities ReportTwelfth edition – May 30, 2007

1. General2. Implementations3. Language4. Libraries5. Tools6. Applications7. Users

http://www.haskell.org/communities/

Andres Lӧf (ed.) と約90名の皆様が執筆

A4サイズで82枚

23

お金の匂いがするのを探してみました

注:発表者は関西暦12年

24

7.1.2 Bluespec tools for design of complex chips

bluespec http://www.bluespec.com/

組込み機器は、このエラーが致命的/発見困難「タイミング」によって引き起こされるエラー

設計支援プログラムを Haskell で (85K行)25

7.1.3 Galois, Inc.

暗号と、暗号仕様記述言語 クロスドメインセキュリティ セキュアミドルウェア あらゆるツールをHaskellで Domain-Specificな言語を設計

関数型プログラマを使って新しいサービスをより早く提供

26

こんな会社も(こっそり)社内で使ってます

Microsoft Research British Airways IBM 日本はどこかの誰かがやっているはず

っていうか、「.Net Framework」対応(予定)だし。

27

Haskellで儲ける

自社内でのみ使う 正確さを求められるとき有効 工期が短いとき有効 一ヶ月工期をもらって一週間で実装(テスト要らず)残りの三週間は仕事してる「フリ」をする

おすすめのプラン

あなただけの万能ナイフとして使う28

Haskellを学ぶには?

29

日本語のHaskell文献ふつうのHaskell

入門Haskell

30

日本語のHaskell文献ふつうのHaskell

入門Haskell

紀伊国屋書店札幌店在庫はどちらも

2冊だけ

有隣堂書店(札幌大丸)は在庫切れでした

昨日13時調べ

30

本物のプログラマはHaskellを使う

Haskell Wiki (日本語)

Haskell メーリングリスト

日本語のHaskell文献

http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248215/

http://tinyurl.com/2c9pxq

http://www.sampou.org/cgi-bin/haskell.cgi

http://tinyurl.com/yrhozj

31

本物のプログラマはHaskellを使う

Haskell Wiki (日本語)

Haskell メーリングリスト

日本語のHaskell文献

http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248215/

http://tinyurl.com/2c9pxq

http://www.sampou.org/cgi-bin/haskell.cgi

http://tinyurl.com/yrhozj

Google で検索しよう31

初心者向けの決定版

32

33

発表者のblog経由で

Amazon お買い上げ

http://tinyurl.com/2wv7oa

約200円/人儲かりまっせ

34

Live Q & A

http://tinyurl.com/2wv7oaアサマしい奴

札幌勉強会KickOff?

35

ゲストの方に拍手をお願いします。

ありがとうございました。

36

top related