問3.6.1 append (append xs ys) zs = append xs (append ys zs) を xs に関する帰納法で証明せよ。ただし append は、 プリント Ⅲ章 p.7で定義されている関数である。
問3.8.1 リストを昇ベキの順に表された多項式と見なし、多項式の値を計算する関数 evalPoly :: [Double] -> Double -> Doubleを定義せよ。
問3.10.1 takeの反対に、リストの最初の n個の要素を取り除く関数 myDrop :: Integer -> [a] -> [a]を定義せよ。
問3.11.1 非負の整数 n を受け取り、 0 ≦ x ≦ y ≦ n となるすべての x, y の組を生成する関数 foo :: Integer -> [(Integer, Integer)] を内包表記を用いて定義せよ。
問3.11.2 非負の整数 n を受け取り、0 < x < y < z ≦ n の範囲で x2 + y2 = z2 となるすべての x, y, z の組を生成する関数 chokkaku :: Integer -> [(Integer, Integer, Integer)] を内包表記を用いて定義せよ。
できるだけ短く簡潔におさめて下さい。 コンピュータを使う場合は ΤΕΧを推奨します。
提出〆切は、7月1日の授業開始時です。(オンラインの提出はありません。)
プログラミング言語特論のホームページ