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


プリントの
  1. 問3.6.1 append (append xs ys) zs = append xs (append ys zs)xs に関する帰納法で証明せよ。ただし appendは、 プリント Ⅲ章 p.6で定義されている関数である。

  2. 問3.8.1 リストを昇ベキの順に表された多項式と見なし、多項式の値を計算する関数 evalPoly :: [Double] -> Double -> Doubleを定義せよ。

  3. 問3.10.1 takeの反対に、リストの最初の n個の要素を取り除く関数 myDrop :: Integer -> [a] -> [a]を定義せよ。

  4. 問3.11.1 (リストの内包表記を用いて) 非負の整数 nを受け取り、 0 ≤ x ≤ y ≤ nとなるすべてのx, yの組を生成する関数foo :: Integer -> [(Integer, Integer)] を定義せよ。

  5. 問3.11.2 (リストの内包表記を用いて) 非負の整数 n を受け取り、0 < x < y < z ≤ n の範囲で x2 + y2 = z2 となるすべての x, y, z の組を生成する関数 chokkaku :: Integer -> [(Integer, Integer, Integer)] を定義せよ。

を解いて下さい。

提出は、11月29日の授業開始時です。

プログラミング言語特論のホームページ
Koji Kagawa