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


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

  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)] を内包表記を用いて定義せよ。

を解いて下さい。

できるだけ短く簡潔におさめて下さい。 コンピュータを使う場合は ΤΕΧを推奨します。

提出〆切は、12月9日の授業開始時です。(オンラインの提出はありません。)

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