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

問題

  1. (問 3.1.2)2つの数 x, yを受取り、 cos(3x+5y) を計算する関数 fを定義せよ。
  2. (問 3.4.4似)3つの数 x, y, zを受けとり、もっとも小さな数を返す関数 min3を定義せよ。
  3. (問 3.8.3.1)2つの整数 m, nを受取り、 ユークリッドの互除法を用いて最大公約数を求める関数 gcdを定義せよ。
  4. (問 4.1.5)数のリストを受けとり、 その積を求める関数 prodを定義せよ。 例えば、(prod '(1 2 3 4))は24、 (prod '(1 2 3 4 5))は 120となる。
  5. 問 3.8.1の my-powerの末尾再帰&C言語バージョン
    int my_power(int x, int n, int acc) {
      if (n==0) {
        return acc;
      } else {
        return my_power(x, n-1, x*acc);
      }
    }
    
    を再帰を使わず繰り返しを使う(Cの)関数に書き換えよ。
以上の問題をすべて解いてください。

さらに、余裕のある人はプリントの問 4.1.17まで(で授業中、 答あわせをしていないもの、かもしくは別解) をできるだけたくさん解いて下さい。

提出要領


Koji Kagawa (kagawa@eng.?????)