Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Makoto Kishimoto
859 views
20151121
Haskell
Software
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 13
2
/ 13
3
/ 13
4
/ 13
5
/ 13
6
/ 13
7
/ 13
8
/ 13
9
/ 13
10
/ 13
11
/ 13
12
/ 13
13
/ 13
More Related Content
PDF
Callback DSL on Haxe
by
Nobukazu Hanada
ODP
FZ and DAZ in denormals
by
Makoto Kishimoto
PDF
R!SE presentation in ri asia 2014 - 日本企業における災害リスク管理への取り組み状況とチャレンジ
by
Kazuya(Kazu) Miyamura
PDF
技術者が知るべき Gröbner 基底
by
Hiromi Ishii
PDF
数学プログラムを Haskell で書くべき 6 の理由
by
Hiromi Ishii
PDF
圏とHaskellの型
by
KinebuchiTomo
PDF
Haskell Lecture 1
by
Yusuke Matsushita
PDF
初めてのHaskell (表)
by
karky7
Callback DSL on Haxe
by
Nobukazu Hanada
FZ and DAZ in denormals
by
Makoto Kishimoto
R!SE presentation in ri asia 2014 - 日本企業における災害リスク管理への取り組み状況とチャレンジ
by
Kazuya(Kazu) Miyamura
技術者が知るべき Gröbner 基底
by
Hiromi Ishii
数学プログラムを Haskell で書くべき 6 の理由
by
Hiromi Ishii
圏とHaskellの型
by
KinebuchiTomo
Haskell Lecture 1
by
Yusuke Matsushita
初めてのHaskell (表)
by
karky7
Similar to 20151121
PDF
ScalaプログラマのためのHaskell入門
by
Yasuaki Takebe
ODP
Vim scriptとJavaとHaskell
by
aiya000
PDF
プログラミングHaskell(第2章)
by
yaju88
ODP
Haskell
by
todorokit
KEY
とびだせHaskellの森1
by
Shoko Sasaki
PDF
すごいHaskell楽しく学ぼう 第6章
by
aomori ringo
PDF
並行プログラミングと継続モナド
by
Kousuke Ruichi
PDF
An Introduction to Guarded Horn Clauses
by
koichik
PDF
プログラミングHaskell(第1章)
by
yaju88
PDF
Haskell で CLI
by
Nobutada Matsubara
PDF
CHP survey
by
Makoto Kishimoto
PPTX
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
by
Fujio Kojima
PDF
スタートHaskell2 型を信じろ
by
Satoshi KOJIMA
PDF
Haskell勉強会 in ie
by
maeken2010
PDF
リストモナドを作ってみた
by
Atsushi Kanehara
PDF
Ekmett勉強会発表資料
by
時響 逢坂
PDF
すごいHaskell読書会#1 in 大阪
by
yashigani
PDF
Haskell超入門 Part.1
by
Yuichi Watanabe
PDF
すごい配列楽しく学ぼう
by
xenophobia__
PDF
An engineer uses monads
by
Kousuke Ruichi
ScalaプログラマのためのHaskell入門
by
Yasuaki Takebe
Vim scriptとJavaとHaskell
by
aiya000
プログラミングHaskell(第2章)
by
yaju88
Haskell
by
todorokit
とびだせHaskellの森1
by
Shoko Sasaki
すごいHaskell楽しく学ぼう 第6章
by
aomori ringo
並行プログラミングと継続モナド
by
Kousuke Ruichi
An Introduction to Guarded Horn Clauses
by
koichik
プログラミングHaskell(第1章)
by
yaju88
Haskell で CLI
by
Nobutada Matsubara
CHP survey
by
Makoto Kishimoto
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
by
Fujio Kojima
スタートHaskell2 型を信じろ
by
Satoshi KOJIMA
Haskell勉強会 in ie
by
maeken2010
リストモナドを作ってみた
by
Atsushi Kanehara
Ekmett勉強会発表資料
by
時響 逢坂
すごいHaskell読書会#1 in 大阪
by
yashigani
Haskell超入門 Part.1
by
Yuichi Watanabe
すごい配列楽しく学ぼう
by
xenophobia__
An engineer uses monads
by
Kousuke Ruichi
More from Makoto Kishimoto
PDF
some SHA1 implementation
by
Makoto Kishimoto
PDF
Visulan intro
by
Makoto Kishimoto
PDF
Shizuoka go lang csp
by
Makoto Kishimoto
PDF
Tech oyaji ksmakoto_presen
by
Makoto Kishimoto
PDF
Subprocess no susume
by
Makoto Kishimoto
ODP
Node handson
by
Makoto Kishimoto
ODP
app-c.odp
by
Makoto Kishimoto
some SHA1 implementation
by
Makoto Kishimoto
Visulan intro
by
Makoto Kishimoto
Shizuoka go lang csp
by
Makoto Kishimoto
Tech oyaji ksmakoto_presen
by
Makoto Kishimoto
Subprocess no susume
by
Makoto Kishimoto
Node handson
by
Makoto Kishimoto
app-c.odp
by
Makoto Kishimoto
20151121
1.
Haskellハンズオン ● 資料: オーム社『プログラミングHaskell』
2.
記号表
3.
Haskellについて ● Haskell自体には特にCSPとのかかわりはない ● 並列・並行フレームワークは近年さかんに開発 されている /
DSLのツールとしても有用 ● Software Transactional Memory (STM) が有力 ● 標準でIOなどの副作用が閉込められているため ● Communicating Haskell Processes (CHP) ● CSPベースの並行フレームワーク ● 『Haskellによる並列・並行プログラミング』 ● モナド: 言語(コア)マターではなくライブラリ (構文糖などはあるが)
4.
遅延評価 Prelude> let lst
= [x*x | x <- [1..10]] :: [Int] Prelude> :sp lst lst = _ Prelude> take 3 lst [1,4,9] Prelude> :sp lst lst = 1 : 4 : 9 : _ Prelude> length lst 10 Prelude> :sp lst lst = [1,4,9,_,_,_,_,_,_,_]
5.
「魔法ではない」 ● Haskell自体には、Prologのようなパターンマッ チ&バックトラックはありません ● パターンマッチは関数適用の1方向のみ ⬐できません ●
predicate x x のようにして「2個の実引数が同じ」 ● (たとえば)整数引数の関数が 自動でメモ化されるわけでもありません ● 例: ナイーブな fib はやはりとても遅い ● それなりに効率的なコードは それなりに難しい → 最後に
6.
第2章 ● https://www.haskell.org/hoogle/ ● p.
15 : ghci では let one = 1 のように、 1行なら定義ができる ● p. 16 : コロンで始まるコマンドは、 そこにあるものは ghci でも共通 ● 名前(識別子)は種類ごとに ● 先頭が小文字の名前 ● 先頭が大文字の名前 ● (先頭がコロン以外の演算子) ● (先頭がコロンの演算子)
7.
第2章 (cont) ● 優先順位:
関数適用は高く、演算子は低い ● $ 演算子は優先順位最低の右結合演算子 ● a b (c d) → a b $ c d ● ' は先頭にあると Char のリテラル、それ以外は 名前の一部として使える (「ちょっとした違い」の意味で多用) ● -- から行末まではコメント
8.
第3章 ● 「:t」コマンドで型の情報を表示 ● 「:i」コマンドでその名前に関する情報 ● ごちゃごちゃ出てくるのですぐには慣れないかも ●
型推論: 簡単な式なら任せっきりで良い ● -Wall を付けていると、トップレベルの定義に 「 :: 型」が無い場合は警告 ● 最初からある (Prelude の) 名前を変えるのは、 my--- とか付けて避けてください ● Fractional と Data.Ratio.% , toRational
9.
第4章 ● Pythonは「TOOWTDI」だが、Haskellはそうで はない(必ずしもTMTOWTDIでもないが) ● 多値関数はタプルとタプルパターンで ● n+kパターンはobsoleted ● (既に出ているが)「セクション」の反対は バッククオート (例)
10 `div` 3 ● (慣れてきたら) declaration styleで ● https://wiki.haskell.org/Declaration_vs._expression_style
10.
第5章 ● リスト内包表記 (list
comprehension、包含) ● 「 <- 」(本文中では ← ) は、集合の 記法の ∈ の気分、「外延と内包」の内包 ● (最近のPythonにも似たものがある) ● やはり魔法ではない ● [(x,y) | x <- [0..], y <- [0,1,2]] --これはOK ● [(x,y) | x <- [0,1,2], y <- [0..]] -- これはダメ (これはMirandaでは // という記号を使う diagonalisingというものでできる)
11.
第6章、第7章 ● 再帰と高階関数 ● 『Lisp(Scheme)手習い』 ● 最初は再帰で、慣れたら高階関数へ ● 効率? ● そのうちどうしても実際に問題が出たら ● 遅延評価のせいで
1+2+3+...+10000 を計算しないま ま持つようになっているかもしれない ● だけどそれを逆にしようとした結果、必要のない計 算までするようにしてしまうかもしれない
12.
続き ● 効率? (続き) ● これまでのプログラミングの直感と違う ● ほんとに大変なら、詳しい人に助言を仰ぐ ● 以前は foldl
は要注意でしたが、最近は大丈夫 ● http://www.well-typed.com/blog/2014/04/fixing-foldl/ ● というわけで、だいたい大丈夫ではある ● でも、ビッグデータもどきぐらいでも問題出るかも ● オライリー『Real World Haskell』第25章 ● この資料の次のページ (のリンク先) も参照
13.
その他のまとめ ● Haskellらしい、かつちゃんとチューニングされた ● フィボナッチ ● 素数 ● クイック(等)ソート ● http://d.hatena.ne.jp/kazu-yamamoto/20100624/1277348961を 参照 ● 参:手続き言語で同様にチューニングされたQソート ● 岩波講座
ソフトウェア科学 3 『アルゴリズムとデータ構造』 ● マージソート? ● http://ksmakoto.hatenadiary.com/entry/2014/05/23/195724
Download