• 検索結果がありません。

プログラミング言語論 プログラミング言語論

N/A
N/A
Protected

Academic year: 2021

シェア "プログラミング言語論 プログラミング言語論"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

プログラミング言語論 プログラミング言語論

演習7 解答と解説

演習7

演習7 .. 1 1 解答と解説 解答と解説

① (λx.λy.yx)ab

β (λy.ya)b

β

ba

2

((λx.(λy.yx))a)b と考える

(λx.(λy.yx))a をまず簡約

演習7

演習7 .. 1 1 解答と解説 解答と解説

② λx.λy.axy

η

λx.ax

η

a

3

(λx.(λy.axy))

内側からη変換

(2)

演習7

演習7 .. 1 1 簡約の表記について 簡約の表記について

表記に注意する

以下のような表記は不可

β β β β

→β

次のような書き方は、ある

β β β β

4

β

演習7

演習7 .. 1 1 簡約の表記について 簡約の表記について

簡約は、推移的ではない したがって、

λx.λy.axy →

η

λx.ax →

η

a を、以下のように省略して書くこ とはできない

λx.λy.axy →

η

a

×

5

演習7

演習7 .. 1 1 簡約の表記について 簡約の表記について

反射的推移閉包 を定義して、

以下のように書くことは可 λx.λy.axy →

a

(関係→を、

→ = →

α

∪→

β

∪→

η

とし、その反射的推移閉包を

とする)

6

(3)

反射的推移閉包については、

「プログラミング言語の基礎」 の

『3.6 反射的推移閉包』を参照

演習7

演習7 .. 1 1 簡約の表記について 簡約の表記について

7

演習7

演習7 .. 2 2 解答 解答

(define fib (lambda (n)

(cond ((<= n 0) 0) ((= n 1) 1)

(else (+ (fib(- n 1)) (fib(- n 2)) )) )))

8

演習7

演習7 .. 2 2 解答 解答 (別解) (別解)

(define fib (lambda (n)

(if (<= n 0) 0 (if (= n 1) 1

(+ (fib(- n 1))

(fib(- n 2)) )) )))

9

(4)

演習7

演習7 .. 2 2 解説 解説

10

改行位置は任意

括弧の数に注意すること

演習7

演習7 .. 3 3 (1) (1) 解説 解説

( i ) は、要素が一つだけのリスト S式は( i . () ) であり、木にすると

となる

これを、love、cats と並べてリストに する

i ()

11

演習7

演習7 .. 3 3 (1) (1) 解答 解答

( (i .()) .(love . (cats .())) )

i () love

cats ()

12

(5)

演習7

演習7 .. 3 3 (2) (2) 解説 解説

x = (the question) とすると、リストは

このxを

で置き換える

(that is x) = (that . (is . (x . () ))) x = (the . (question . () ))

13

演習7

演習7 .. 3 3 (2) (2) 解答 解答

that is

() () the

question

14

(that . (is . ((the . (question . () )) . () )))

演習7

演習7 .. 4 4 解説 解説

((to be) or (not to be)

that is (the question))

(or (not to be) that is (the question))

((not to be) that is (the question))

15

cdr

cdr

(6)

演習7

演習7 .. 4 4 解答 解答

or

(that is (the question)) (1)

(2)

16

注:カッコの有無に注意

参照

関連したドキュメント

蒸気機関を動力とし、入 力(プログラムとデー タ)は、パンチカードで 供給される.. Ritchie) が主 体となり開発.

PROCEDURE DIVISION (手続き部) レコード型(構造体)が定義可能

[r]

[r]

 制御構造 による見通しの良い 処理と、 モジュール化 による問

値呼出し (call-by-value) 参照呼出し

S式 (Symbolic expression) の定義 アトムは S式である.

【付録】