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
EN
Uploaded by
rf0444
1,881 views
Tapl 5
Read more
2
Save
Share
Embed
Embed presentation
Download
Downloaded 15 times
1
/ 66
2
/ 66
3
/ 66
4
/ 66
5
/ 66
6
/ 66
7
/ 66
8
/ 66
9
/ 66
10
/ 66
11
/ 66
12
/ 66
13
/ 66
14
/ 66
15
/ 66
16
/ 66
17
/ 66
18
/ 66
19
/ 66
20
/ 66
21
/ 66
22
/ 66
23
/ 66
24
/ 66
25
/ 66
26
/ 66
27
/ 66
28
/ 66
29
/ 66
30
/ 66
31
/ 66
32
/ 66
33
/ 66
34
/ 66
35
/ 66
36
/ 66
37
/ 66
38
/ 66
39
/ 66
40
/ 66
41
/ 66
42
/ 66
43
/ 66
44
/ 66
45
/ 66
46
/ 66
47
/ 66
48
/ 66
49
/ 66
50
/ 66
51
/ 66
52
/ 66
53
/ 66
54
/ 66
55
/ 66
56
/ 66
57
/ 66
58
/ 66
59
/ 66
60
/ 66
61
/ 66
62
/ 66
63
/ 66
64
/ 66
65
/ 66
66
/ 66
More Related Content
PDF
表現行列問題
by
政孝 鍋島
PPTX
表現行列の問題
by
nabeshimamasataka
PPT
言語処理系入門9
by
Kenta Hattori
PPTX
ラプラス作用素の極座標表示
by
政孝 鍋島
PDF
Church Numerals
by
Masato HORINOUCHI
PDF
型クラス
by
hakukotsu
PPTX
Yokohama6 epi
by
えぴ 福田
PPTX
コンパクト性とC1級の問題
by
nabeshimamasataka
表現行列問題
by
政孝 鍋島
表現行列の問題
by
nabeshimamasataka
言語処理系入門9
by
Kenta Hattori
ラプラス作用素の極座標表示
by
政孝 鍋島
Church Numerals
by
Masato HORINOUCHI
型クラス
by
hakukotsu
Yokohama6 epi
by
えぴ 福田
コンパクト性とC1級の問題
by
nabeshimamasataka
What's hot
PPTX
mathemaical_notation
by
Kenta Oono
PDF
f(x)=0と極値の問題
by
政孝 鍋島
PPTX
f(x)=0と極値の問題
by
nabeshimamasataka
PDF
商位相とコンパクト化の問題
by
政孝 鍋島
PPTX
商位相とコンパクト化の問題
by
nabeshimamasataka
PPT
言語処理系入門5
by
Kenta Hattori
PPTX
有限個の点を取り付けた集合の位相
by
政孝 鍋島
KEY
Sml#探検隊
by
Hiroki Mizuno
PDF
Python勉強会4-制御構文とパッケージ
by
理 小林
ODP
F#とC#で見る関数志向プログラミング
by
satoshimurakumo
PDF
円の位相
by
政孝 鍋島
PPTX
円の位相
by
nabeshimamasataka
PDF
Nonlinear programming輪講スライド with 最適化法
by
Yo Ehara
PDF
120919 kyushu
by
Hiroshi Sato
PDF
導来代数幾何入門
by
Naoya Umezaki
PDF
モナドをつくろう
by
dico_leque
PDF
代数的データ型をラムダ計算の中で表現する方法
by
syamino
PDF
自動定理証明の紹介
by
Masahiro Sakai
mathemaical_notation
by
Kenta Oono
f(x)=0と極値の問題
by
政孝 鍋島
f(x)=0と極値の問題
by
nabeshimamasataka
商位相とコンパクト化の問題
by
政孝 鍋島
商位相とコンパクト化の問題
by
nabeshimamasataka
言語処理系入門5
by
Kenta Hattori
有限個の点を取り付けた集合の位相
by
政孝 鍋島
Sml#探検隊
by
Hiroki Mizuno
Python勉強会4-制御構文とパッケージ
by
理 小林
F#とC#で見る関数志向プログラミング
by
satoshimurakumo
円の位相
by
政孝 鍋島
円の位相
by
nabeshimamasataka
Nonlinear programming輪講スライド with 最適化法
by
Yo Ehara
120919 kyushu
by
Hiroshi Sato
導来代数幾何入門
by
Naoya Umezaki
モナドをつくろう
by
dico_leque
代数的データ型をラムダ計算の中で表現する方法
by
syamino
自動定理証明の紹介
by
Masahiro Sakai
Viewers also liked
PDF
テスト自動化読書会 第3章 20150523
by
dnoguchi
PDF
システムテスト自動化標準ガイド第7章
by
nihon buson
PDF
WooCommerce & Apple TV
by
Marko Heijnen
PDF
20120830 DBリファクタリング読書会第三回
by
都元ダイスケ Miyamoto
PDF
第4章 自動比較
by
toku toku
PDF
アジャイルリーダーシップと組織改革 ~楽天のアジャイル開発というリアル~ エピローグ
by
Dai FUJIHARA
PDF
すごいHaskell楽しく学ぼう 第6章
by
aomori ringo
PPTX
システムテスト自動化標準ガイド 5章発表資料
by
Masatoshi Itoh
KEY
文芸的プログラミング
by
Shoko Sasaki
PPTX
[デブサミ2015] スクラムならうまくいく?〜グリーのネイティブゲーム作りの歴史をひもとく、そして未来へ〜
by
gree_tech
PDF
LeanCustomerDevelopment
by
Kouki Kawagoi
PPTX
20150418 システムテスト自動化 第二章
by
atsushi ishiji
PDF
TAPL勉強会 第1章 (2012-07-17)
by
none_toka
PDF
NaITE#15オープニング資料
by
Akira Ikeda
PDF
Stg2015 1c-1プレゼン資料 いまココにある請負アジャイル開発現場の実態 ~4年で4億弱売上20案件以上の実践経験から語る~
by
健 渡会
KEY
by
a-hisame
PPTX
システムテスト自動化標準ガイド 読書会 第8章
by
mirer
PDF
名前付けのすすめ / GMOペパボ株式会社 鹿島恵実(かしめぐ)
by
Kashima Megumi
PDF
不確実性への挑戦Ver0.1
by
naoto kyo
PDF
要注意!?効果の出ない技術研修に共通する3つのこと
by
codecampJP
テスト自動化読書会 第3章 20150523
by
dnoguchi
システムテスト自動化標準ガイド第7章
by
nihon buson
WooCommerce & Apple TV
by
Marko Heijnen
20120830 DBリファクタリング読書会第三回
by
都元ダイスケ Miyamoto
第4章 自動比較
by
toku toku
アジャイルリーダーシップと組織改革 ~楽天のアジャイル開発というリアル~ エピローグ
by
Dai FUJIHARA
すごいHaskell楽しく学ぼう 第6章
by
aomori ringo
システムテスト自動化標準ガイド 5章発表資料
by
Masatoshi Itoh
文芸的プログラミング
by
Shoko Sasaki
[デブサミ2015] スクラムならうまくいく?〜グリーのネイティブゲーム作りの歴史をひもとく、そして未来へ〜
by
gree_tech
LeanCustomerDevelopment
by
Kouki Kawagoi
20150418 システムテスト自動化 第二章
by
atsushi ishiji
TAPL勉強会 第1章 (2012-07-17)
by
none_toka
NaITE#15オープニング資料
by
Akira Ikeda
Stg2015 1c-1プレゼン資料 いまココにある請負アジャイル開発現場の実態 ~4年で4億弱売上20案件以上の実践経験から語る~
by
健 渡会
by
a-hisame
システムテスト自動化標準ガイド 読書会 第8章
by
mirer
名前付けのすすめ / GMOペパボ株式会社 鹿島恵実(かしめぐ)
by
Kashima Megumi
不確実性への挑戦Ver0.1
by
naoto kyo
要注意!?効果の出ない技術研修に共通する3つのこと
by
codecampJP
Similar to Tapl 5
PDF
関数プログラミング入門
by
Hideyuki Tanaka
KEY
TaPL_chap11
by
a-hisame
KEY
ラムダ計算入門
by
Eita Sugimoto
PDF
2013computer s1
by
munich1502
PDF
関数型都市忘年会『はじめての函数型プログラミング』
by
Kenta USAMI
PDF
Introduction to Categorical Programming (Revised)
by
Masahiro Sakai
PDF
Introduction to Categorical Programming
by
Masahiro Sakai
PDF
たのしい関数型
by
Shinichi Kozake
PDF
Lisp講義1
by
stibear (stibear1996)
PPTX
サンプルで学ぶAlloy
by
NSaitoNmiri
PDF
ラムダ計算と関数型言語を学ぶ
by
Naoki Hayashida
PDF
Lambda calculus
by
Naoki Rin
PDF
Javaプログラミング入門
by
なおき きしだ
PDF
R language definition3.1_3.2
by
Yoshiteru Kamiyama
PDF
関数型軽い紹介
by
Daniel Perez
PDF
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
by
Yuto Takei
PDF
F#入門 ~関数プログラミングとは何か~
by
Nobuhisa Koizumi
PDF
130604 fpgax kibayos
by
Mikio Yoshida
PPTX
純粋関数型アルゴリズム入門
by
Kimikazu Kato
PPTX
(Lambdaだけで)純LISPのようなナニかを作る
by
Daichi Teruya
関数プログラミング入門
by
Hideyuki Tanaka
TaPL_chap11
by
a-hisame
ラムダ計算入門
by
Eita Sugimoto
2013computer s1
by
munich1502
関数型都市忘年会『はじめての函数型プログラミング』
by
Kenta USAMI
Introduction to Categorical Programming (Revised)
by
Masahiro Sakai
Introduction to Categorical Programming
by
Masahiro Sakai
たのしい関数型
by
Shinichi Kozake
Lisp講義1
by
stibear (stibear1996)
サンプルで学ぶAlloy
by
NSaitoNmiri
ラムダ計算と関数型言語を学ぶ
by
Naoki Hayashida
Lambda calculus
by
Naoki Rin
Javaプログラミング入門
by
なおき きしだ
R language definition3.1_3.2
by
Yoshiteru Kamiyama
関数型軽い紹介
by
Daniel Perez
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
by
Yuto Takei
F#入門 ~関数プログラミングとは何か~
by
Nobuhisa Koizumi
130604 fpgax kibayos
by
Mikio Yoshida
純粋関数型アルゴリズム入門
by
Kimikazu Kato
(Lambdaだけで)純LISPのようなナニかを作る
by
Daichi Teruya
More from rf0444
PDF
SWF
by
rf0444
PDF
FRP in Practice
by
rf0444
PDF
Start FRP
by
rf0444
PDF
PFDS 11.2.2
by
rf0444
PDF
PFDS 10.1.2
by
rf0444
PDF
PFDS 9.3.2
by
rf0444
PDF
PFDS 9.3.1
by
rf0444
PDF
PFDS 8.4.1
by
rf0444
PDF
PFDS 7.4
by
rf0444
PDF
Haskellday rf
by
rf0444
PDF
PFDS 6.4.3
by
rf0444
SWF
by
rf0444
FRP in Practice
by
rf0444
Start FRP
by
rf0444
PFDS 11.2.2
by
rf0444
PFDS 10.1.2
by
rf0444
PFDS 9.3.2
by
rf0444
PFDS 9.3.1
by
rf0444
PFDS 8.4.1
by
rf0444
PFDS 7.4
by
rf0444
Haskellday rf
by
rf0444
PFDS 6.4.3
by
rf0444
Tapl 5
1.
The Untyped Lambda-Calculus
Types and Programming Languages 5 章 λ! @rf0444
2.
5.1 Basics
3.
λ? ラムダ計算 (lambda-calculus) 関数定義
と 関数適用 だけ 全て関数
4.
Syntax 項 (term) t
::= x λx.t t t * x: 任意の変数、t: 任意の項
5.
Syntax 項 (term) t
::= 変数 x (variable) λx.t t t * x: 任意の変数、t: 任意の項
6.
Syntax 項 (term) t
::= x ラムダ抽象 λx.t (abstraction) t t * x: 任意の変数、t: 任意の項
7.
Syntax 項 (term) t
::= x λx.t 関数適用 (application) t t * x: 任意の変数、t: 任意の項
8.
Syntax 優先順位 ラムダ抽象 -
右から 例: λx.λy.t = λx.(λy.t) 関数適用 - 左から 例: λx.a b c = λx.(a b) c
9.
Scope 束縛変数 (bound variable)
λx.t で t の中にある x のこと 例: λx.x y での、x
10.
Scope 自由変数 (free variable)
項の中で、外側のラムダ抽象の変数部に現れな い変数のこと 例: λx.x y での、y
11.
Scope 閉項 (closed term)
自由変数を含まない項のこと コンビネータ (combinator) ともいう 例: λx.x 恒等関数 (identity function)
12.
Operational
Semantics 関数適用 (λx.a) b ! [x!b]a a の中の x を b に置き換える 例: (λx.x) y ! y
13.
Operational
Semantics 簡約基 (redex) (λx.a) b という形をした項のこと β簡約 (beta-reduction) 簡約基を、先のルールに従って書き換えること
14.
Operational
Semantics 簡約戦略 full beta-reduction normal order strategy call-by-name strategy call-by-value strategy
15.
Operational
Semantics full beta-reduction 任意の簡約可能式を、任意のタイミングで簡 約できる
16.
Operational
Semantics normal order strategy 最左最外簡約 (leftmost, outermost) 左側、外側の項から順番に簡約していく
17.
Operational
Semantics call-by-name strategy ラムダ抽象の中は簡約しない それ以外は normal order strategy call-by-need strategy 評価結果を保存して、再計算しない版
18.
Operational
Semantics call-by-value strategy 関数適用の前に、右側を先に簡約する それ以外は call-by-name strategy
19.
Operational
Semantics call-by-value strategy 正格 (strict) 関数内で引数が使われなくでも、引数を評 価する call-by-name/need は 遅延 (lazy)
20.
5.2 Programming in the
Lambda-Calculus
21.
Multiple Arguments 2引数関数 λ(a,b).t
的な λa.λb.t でできるよ!
22.
Multiple Arguments 高階関数 (higher-order
function) 関数を引数に受け取ったり、関数を返したり する関数のこと 例: λa.λb.t a をとって「b をとって t を返す関数」 を返す関数
23.
Multiple Arguments カリー化 (currying)
多引数の関数を、高階関数の形に変換するこ と 例: λ(a,b).t ! λa.λb.t
24.
Church Booleans tru =
λt.λf.t fls = λt.λf.f
25.
Church Booleans tru =
λt.λf.t t: 真を表すもの f: 偽を表すもの fls = λt.λf.f
26.
Church Booleans and =
λb.λc.b c fls or = λb.λc.b tru c not = λb.b fls tru
27.
Church Booleans and =
λb.λc.b c fls b が真なら c 偽なら fls or = λb.λc.b tru c not = λb.b fls tru
28.
Church Booleans and =
λb.λc.b c fls b が真なら tru or = λb.λc.b tru c 偽なら c not = λb.b fls tru
29.
Church Booleans and =
λb.λc.b c fls or = λb.λc.b tru c not = λb.b fls tru b が真なら fls 偽なら tru
30.
Church Booleans 例: and
tru fls ! (λb.λc.b c fls) tru fls ! (λc.tru c fls) fls ! tru fls fls
31.
Church Booleans 例: and
tru fls ! tru fls fls ! (λt.λf.t) fls fls ! (λf.fls) fls ! fls
32.
Pairs pair = λf.λs.λb.b
f s fst = λp.p tru snd = λp.p fls
33.
Pairs pair = λf.λs.λb.b
f s fst = λp.p tru f が返る snd = λp.p fls s が返る
34.
Pairs 例: fst (pair
tru fls) ! fst ((λf.λs.λb.b f s) tru fls) ! fst ((λs.λb.b tru s) fls) ! fst (λb.b tru fls) ! (λp.p tru) (λb.b tru fls)
35.
Pairs 例: fst (pair
tru fls) ! (λp.p tru) (λb.b tru fls) ! (λb.b tru fls) tru ! tru tru fls ! (λt.λf.t) tru fls ! tru
36.
Church Numerals c0 =
λs.λz.z c1 = λs.λz.s z c2 = λs.λz.s (s z) c3 = λs.λz.s (s (s z)) ...
37.
Church Numerals
z: 0 を表すもの c0 = λs.λz.z c1 = λs.λz.s z s: 次を取得するもの c2 = λs.λz.s (s z) c3 = λs.λz.s (s (s z)) ...
38.
Church Numerals scc =
λn.λs.λz.s (n s z)
39.
Church Numerals
n の scc = λn.λs.λz.s (n s z) 次
40.
Church Numerals plus =
λm.λn.λs.λz.m s (n s z)
41.
Church Numerals
n から始めて plus = λm.λn.λs.λz.m s (n s z) m 個 次
42.
Church Numerals plus =
λm.λn.λs.λz.m s (n s z) plus = λm.λn.m scc n
43.
Church Numerals plus =
λm.λn.λs.λz.m s (n s z) plus = λm.λn.m scc n m 回 n から始めて scc
44.
Church Numerals times =
λm.λn.m (plus n) c0
45.
Church Numerals
0 から始めて times = λm.λn.m (plus n) c0 m 回 n を足す
46.
Church Numerals iszro =
λm.m (λx.fls) tru
47.
Church Numerals
tru から始めて iszro = λm.m (λx.fls) tru 次は常に fls
48.
Church Numerals prd =
λm.fst (m ss zz) ss = λp.pair (snd p) (scc (snd p)) zz = pair c0 c0
49.
Church Numerals prd =
λm.fst (m ss zz) ss = λp.pair (snd p) (scc (snd p)) zz = pair c0 c0 (0, 0) から始めて
50.
Church Numerals prd =
λm.fst (m ss zz) ss = λp.pair (snd p) (scc (snd p)) zz = pair c0 c0 (_, x) ! (x, x + 1) (0, 0) から始めて
51.
Church Numerals
m 回やると、 m = 0 の時は (m - 1, m) (0, 0) prd = λm.fst (m ss zz) ss = λp.pair (snd p) (scc (snd p)) zz = pair c0 c0 (_, x) ! (x, x + 1) (0, 0) から始めて
52.
Enriching the
Calculus λNB NB (3章) に λ を加える NB (Real) と λ (Church) は、 両方とも boolean と numeral を 持っている
53.
Enriching the
Calculus Church ! Real realbool = λb.b true false realnat = λm.m (λx.succ x) 0 Real ! Church churchbool = λb.if b then tru else fls
54.
Enriching the
Calculus 振る舞い同値 (behaviorally equivalent) どんな引数に対しても、2つの評価結果が同じ 例: call-by-value での scc c1 (λs.λz.s ((λs’.λz’.s’ z’) s z)) (λs.λz.s (s z)) と “振る舞い同値”
55.
Recursion 正規形 (normal form)
これ以上評価できない項のこと 発散 (diverge) 正規形にならない項のこと 例: (λx.x x) (λx.x x) - omega
56.
Recursion 不動点 (fixed-point) fix
= λf. (λx.f (λy.x x y)) (λx.f (λy.x x y)) Z-combinator / call-by-value Y-combinator Y-combinator: λf.(λx.f (x x)) (λx.f (x x))
57.
Recursion 不動点 (fixed-point) 例:
factorial = fix (λf.λn. (iszro n) c1 (times n (f (prd n))))
58.
Recursion Real ! Church
churchnat = fix (λf.λn. if iszero n then c0 else scc (f (pred n))
59.
5.3 Formalities
60.
Syntax 項集合 V を変数の可算集合とする
項集合は、次を満たす最小の集合 T
61.
Syntax 項集合 T x
∈ V ! x ∈ T t ∈ T かつ x ∈ V ! λx.t ∈ T s ∈ T かつ t ∈ T ! s t ∈ T
62.
Syntax 自由変数集合 項 t
の自由変数集合 FV(t) FV(x) = {x} FV(λx.t) = FV(t) - {x} FV(s t) = FV(s) ∪ FV(t)
63.
Substitution α変換 (alpha-conversion) 束縛変数の名前を変えること
例: λy.x y ! λw.x w
64.
Substitution 置き換え [x!s]x =
s [x!s]y = y [x!s](λy.t) = λy.[x!s]t [x!s](t u) = ([x!s]t) ([x!s]u)
65.
Operational
Semantics Syntax 項 (term) 値 (value) t ::= v ::= x λx.t λx.t t t
66.
Operational
Semantics 評価 (evaluation) (call-by-value) t1 ! t1’ E-APP1 t1 t2 ! t1’ t2 t ! t’ E-APP2 v t ! v t’ (λx.t) v ! [x!v]t E-APPABS
Download