Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
sicp 3.2 評価の環境モデル
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
monmon
June 03, 2013
Technology
330
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
sicp 3.2 評価の環境モデル
せっかく環境モデルを絵で書いたことだしuploadするんだ
monmon
June 03, 2013
More Decks by monmon
See All by monmon
koba04 さんとワイワイJavaScript勉強会
monmon
0
130
YAPC::Asia Tokyo 2014 僕が担当した運営の話
monmon
0
1.3k
Other Decks in Technology
See All in Technology
Goodbye ShellScript, Hello File-based App
shunsock
0
1.1k
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
4
1.3k
GitHub Agentic Workflows を触ってみる
htkym
2
600
バイブコーディング時代のWebアプリ開発入門~Cloud Runで学ぶセキュアなビルドとデプロイ
waiwai2111
1
150
データ_AIの事業の勝敗をわけるもの
nek0128
1
480
Antigravity SDK for the Java Developer
glaforge
0
210
ボードゲームの遊び相手をFoundation Modelsで作る / iOSDC Japan 2026
genda
0
190
時うどん〜Socket.getifaddrsで学ぶネットワーク編 / Tokiudon: The Socket.getifaddrs Edition
coe401_
4
270
特殊変数大全
dak2
0
130
事業課題から技術的負債に向き合う
sansantech
PRO
2
2.4k
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
160
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
430
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
340
WENDY [Excerpt]
tessaabrams
14
39k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
410
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Ethics towards AI in product and experience design
skipperchong
2
380
The Cult of Friendly URLs
andyhume
79
7k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
WCS-LA-2024
lcolladotor
0
830
The Curse of the Amulet
leimatthew05
3
15k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Transcript
sicp 3.2 評価の環境モデル p.138 - p.142まで くまがいのぶお(monmon) @lesamoureuses
手続き作用の環境モデルの二つの規則 1. 手続きオブジェクトを一組の引数に作用させる には、フレームを構成し、手続きの仮パラメタ を、その呼び出しの引数に束縛し、それから今 構成した新しい環境の文脈で、手続きの本体を 評価する。新しいフレームは外側の環境として、 作用させている手続きの環境部分を持つ。 2. 手続きを、与えられた環境に関してlambda式を
評価して作り出す。結果の手続きオブジェクトは lambda式の本文と手続きが作り出された時の 環境へのポインタである。
まずは手続き定義
例:大域環境で(define (square x) (* x x))を評価し て生じた環境構造
(define (square x) (* x x)) これはlambda式の構文シュガーで、 (define square (lambda
(x) (* x x))) と等価 (話を進める前の前提)手続き定義の構文 について
実際に規則を見ていく
手続き作用の環境モデルの二つの規則 1. 手続きオブジェクトを一組の引数に作用させる には、フレームを構成し、手続きの仮パラメタ を、その呼び出しの引数に束縛し、それから今 構成した新しい環境の文脈で、手続きの本体を 評価する。新しいフレームは外側の環境として、 作用させている手続きの環境部分を持つ。 2. 手続きを、与えられた環境に関してlambda式
を評価して作り出す。結果の手続きオブジェクト はlambda式の本文と手続きが作り出された時 の環境へのポインタである。
他の変数 大域環境
手続き作用の環境モデルの二つの規則 1. 手続きオブジェクトを一組の引数に作用させる には、フレームを構成し、手続きの仮パラメタ を、その呼び出しの引数に束縛し、それから今 構成した新しい環境の文脈で、手続きの本体を 評価する。新しいフレームは外側の環境として、 作用させている手続きの環境部分を持つ。 2. 手続きを、与えられた環境に関してlambda式
を評価して作り出す。結果の手続きオブジェクト はlambda式の本文と手続きが作り出された時 の環境へのポインタである。
(define (square x) (* x x)) これはlambda式の構文シュガーで、 (define square (lambda
(x) (* x x))) と等価
他の変数 大域環境
手続き作用の環境モデルの二つの規則 1. 手続きオブジェクトを一組の引数に作用させる には、フレームを構成し、手続きの仮パラメタ を、その呼び出しの引数に束縛し、それから今 構成した新しい環境の文脈で、手続きの本体を 評価する。新しいフレームは外側の環境として、 作用させている手続きの環境部分を持つ。 2. 手続きを、与えられた環境に関してlambda式
を評価して作り出す。結果の手続きオブジェクト はlambda式の本文と手続きが作り出された時 の環境へのポインタである。
他の変数 大域環境 パラメタ: x 本体: (* x x)
手続き作用の環境モデルの二つの規則 (の補足?) またdefineを使った記号の定義は、現在の環境フ レームで束縛を作り出し、表示された値をその記 号に割り当てる。
他の変数 square: 大域環境 パラメタ: x 本体: (* x x) (define
(square x) (* x x))
つぎに手続き作用
例:(square 5)を評価する時 に作り出された環境構造
手続き作用の環境モデルの二つの規則 1. 手続きオブジェクトを一組の引数に作用させる には、フレームを構成し、手続きの仮パラメタ を、その呼び出しの引数に束縛し、それから今 構成した新しい環境の文脈で、手続きの本体を 評価する。新しいフレームは外側の環境として、 作用させている手続きの環境部分を持つ。 2. 手続きを、与えられた環境に関してlambda式を
評価して作り出す。結果の手続きオブジェクトは lambda式の本文と手続きが作り出された時の 環境へのポインタである。
他の変数 square: 大域環境 パラメタ: x 本体: (* x x) (square
5) E1
手続き作用の環境モデルの二つの規則 1. 手続きオブジェクトを一組の引数に作用させる には、フレームを構成し、手続きの仮パラメタ を、その呼び出しの引数に束縛し、それから今 構成した新しい環境の文脈で、手続きの本体を 評価する。新しいフレームは外側の環境として、 作用させている手続きの環境部分を持つ。 2. 手続きを、与えられた環境に関してlambda式を
評価して作り出す。結果の手続きオブジェクトは lambda式の本文と手続きが作り出された時の 環境へのポインタである。
他の変数 square: 大域環境 パラメタ: x 本体: (* x x) (square
5) x: 5 E1
手続き作用の環境モデルの二つの規則 1. 手続きオブジェクトを一組の引数に作用させる には、フレームを構成し、手続きの仮パラメタ を、その呼び出しの引数に束縛し、それから今 構成した新しい環境の文脈で、手続きの本体を 評価する。新しいフレームは外側の環境として、 作用させている手続きの環境部分を持つ。 2. 手続きを、与えられた環境に関してlambda式を
評価して作り出す。結果の手続きオブジェクトは lambda式の本文と手続きが作り出された時の 環境へのポインタである。
他の変数 square: 大域環境 パラメタ: x 本体: (* x x) (square
5) x: 5 E1
手続き作用の環境モデルの二つの規則 1. 手続きオブジェクトを一組の引数に作用させる には、フレームを構成し、手続きの仮パラメタ を、その呼び出しの引数に束縛し、それから今 構成した新しい環境の文脈で、手続きの本体を 評価する。新しいフレームは外側の環境として、 作用させている手続きの環境部分を持つ。 2. 手続きを、与えられた環境に関してlambda式を
評価して作り出す。結果の手続きオブジェクトは lambda式の本文と手続きが作り出された時の 環境へのポインタである。
他の変数 square: 大域環境 パラメタ: x 本体: (* x x) (square
5) x: 5 E1 (* x x)
E1 で x の値は 5 だから 結果は (* 5 5)
つまり 25
(factorial 6) を再帰版 (define (factorial n) (if (= n 1)
1 (* n (factorial (- n 1))))) を使って評価する時、作り出される環境構造を示 せ q3.9
他の変数 factorial: 大域環境 パラメタ: n 本体: (if (= n 1)
1 (* n (factorial (- n 1))))
他の変数 factorial: 大域環境 パラメタ: n 本体: (if (= n 1)
1 (* n (factorial (- n 1)))) n: 6 E1 (if (= n 1) 1 (* n (factorial (- n 1)))) (factorial 6)
大域環境 n: 6 E1 (if (= n 1) 1 (*
n (factorial (- n 1)))) n: 5 E2 (if (= n 1) 1 (* n (factorial (- n 1))))
大域環境 n: 6 E1 (if (= n 1) 1 (*
n (factorial (- n 1)))) n: 5 E2 n: 4 E3 n: 3 E4 n: 2 E5 n: 1 E6
(factorial 6) を反復版 (define (factorial n) (fact-iter 1 1 n))
(define (fact-iter product counter max-count) (if (> counter max-count) product (fact-iter (* counter product) (+ counter 1) max-count))) を使って評価する時、作り出される環境構造を示せ q3.9
factorial: fact-iter: 大域環境 パラメタ: product, counter, max-count 本体: (if (>
counter max-count) product (fact-iter (* counter product) (+ counter 1) max-count)) パラメタ: n 本体: (fact-iter 1 1 n)
factorial: fact-iter: 大域環境 n: 6 E1 (fact-iter 1 1 n)
(factorial 6) product: 1 counter: 1 max-count: 6 E2 (if (> counter max-count) product (fact-iter (* counter product) (+ counter 1) max-count)) product: 1 counter: 2 max-count: 6 E3 (if (> counter max-count) product (fact-iter (* counter product) (+ counter 1) max-count))
factorial: fact-iter: 大域環境 (factorial 6) product: 1 counter: 1 max-count:
6 E2 product: 1 counter: 2 max-count: 6 E3 product: 2 counter: 3 max-count: 6 E4 product: 6 counter: 4 max-count: 6 E5 product: 24 counter: 5 max-count: 6 E6 product: 120 counter: 6 max-count: 6 E7 product: 720 counter: 7 max-count: 6 E8