プログラミング言語特論 第1回レポート
プリントの
- 問3.5.1
リスト中の数の和を求める関数 mySumを定義せよ。
例えば mySum [1,2,3,4,5]は15, mySum [1..10]は55である。
- 問3.5.2
真偽値のリスト [Bool]を 2進数と見なして、対応する整数を計算する関数
fromBin :: [Bool] -> Integer を定義せよ。例えば、
fromBin [True, True] は 3, fromBin [True, False,
True, False] は 10になる。
ヒント: 引数の数を一つ増やした補助関数が必要になる。
- 問3.6.1
append (append xs ys) zs = append xs (append ys zs)
を xs に関する帰納法で証明せよ。ただし appendは、
プリント Ⅲ章 p.6で定義されている関数である。
- 問3.10.2
非負の整数 n を受け取り、0 < x < y < z ≤ n の範囲で
x2 + y2 = z2 となるすべての
x, y, z の組を生成する関数
chokkaku :: Integer -> [(Integer, Integer, Integer)] を定義せよ。
を解いて下さい。
提出は、11月30日の授業開始時です。
プログラミング言語特論のホームページ
Koji Kagawa
(kagawa@eng.?????)