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

問題 過去の定期試験問題 tkunishi complang1 20050214

N/A
N/A
Protected

Academic year: 2018

シェア "問題 過去の定期試験問題 tkunishi complang1 20050214"

Copied!
2
0
0

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

全文

(1)

2004 年度 計算機言語 I 追試験問題

国島丈生

2005-02-14

1. 次の式の型を示せ。ただし、式として間違っている場合はその理由を述べよ。(各 5 点) (a) [([], #”c”]), ([5,9], #”z”)]

(b) #2((6,10), (5.0, true), (7, #”a”)) (c) hd(tl([(“string”, “integer”)])) (d) if 1<2 then nil else [6.0,7.1]

2. 次の関数の型を示し、型推論の過程を述べよ。(各 10 点)

fun f(0, y) = y

| f(x, y) = f(x-1, x*y);

3. 次の関数を ML で実装せよ。(各 10 点)

(a) リストの末尾 2 つの要素からなるリストを得る関数suffixTwo。ただしリストを逆順に 並び替える関数reverseは定義することなく用いてよい。

(b) 組のリスト[(x1, y1), · · · , (xn, yn)] から、リストの組 ([x1, · · · , xn], [y1, · · · , yn]) を得る 関数unzip: (’a * ’b) list ’a list * ’b list。たとえばunzip([(1, “a”), (2, “b”)]) = ([1,2], [”a”,”b”])となる。

(c) 次のデータ型で 2 分木を表現するとき、2 分木に含まれる節のラベルを帰りがけ順に並 べたリストを得る関数postorder: ’a btree’a list

datatype ’l btree = Empty | Node of ’l * ’l btree * ’l btree;

(d) リストのリストの要素数を求める関数nestnumber: ’a list list int。たとえばnest- number([[1,2], nil, [3,4,5]]) = 5となる。

(e) リスト L 中の要素がすべて述語 P が満たすかどうか判定する関数all: (’abool) * ’a list

bool。たとえば、引数x が正ならtrueを返す関数positive(x)について、all(positive, [1, 2, 1, 3, 5]) = trueとなる。ただし、all(P, nil)P に関わらずtrueとする。 (裏に続く)

(2)

4. 一般の木では、すべての節点について、子の数は制限されない。そのため、子節点をリスト で表現することにより、一般の木を次のようなデータ型で書くことができる。

datatype ’l tree = Node of ’l * ’l tree list;

(a) real treeの型を持つ式の例を示せ。(10 点)

(b) real treeの節点のラベルの総和を求める関数sum: real treerealを実装せよ。(10 点)

参照

関連したドキュメント

最大消滅部分空間問題 MVSP Maximum Vanishing Subspace Problem.. MVSP:

問題集については P28 をご参照ください。 (P28 以外は発行されておりませんので、ご了承く ださい。)

②防災協定の締結促進 ■課題

[r]

けることには問題はないであろう︒

難病対策は、特定疾患の問題、小児慢性 特定疾患の問題、介護の問題、就労の問題

⽉⽇ 時間 事象・対応内容