プログラミング言語論 第1回レポート


プリントの

  1. 問3.5.1 リスト中の数の和を求める関数 mySumを定義せよ。 例えば mySum [1,2,3,4,5]は15, mySum [1..10]は55である。
  2. 問3.5.2 真偽値のリスト [Bool]を 2進数と見なして、対応する整数を計算する関数 fromBin :: [Bool] -> Integer を定義せよ。例えば、 fromBin [True, True] は 3, fromBin [True, False, True, False] は 10になる。
    ヒント: 引数の数を一つ増やした補助関数が必要になる。
  3. 問3.6.1 append (append xs ys) zs = append xs (append ys zs)xs に関する帰納法で証明せよ。ただし appendは、 プリント Ⅲ章 p.6で定義されている関数である。
  4. 問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.?????)