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

問題

  1. (問 4.1.2似) 2つの数 x, y を受取り、 を計算する関数 fを(Schemeで)定義せよ。
  2. (問 4.8.6の quuxのC言語バージョン)

    int quux(int x, int y) {
      if (x==1) {
        return y;
      } else {
        return quux(x-1, (x+y)%65536);
      }
    }
    
    を再帰を使わず繰り返し(と代入文)を使う C言語の関数に書き換えよ。

  3. (問 4.8.4) 整数 n を受取り、n の2進数表記をリストの形で求める関数 binaryを(Schemeまたは JavaScriptで)定義せよ。

  4. (問 5.1.6) 数のリストを受けとり、 その最小値を求める関数 minimumを(Schemeまたは JavaScriptで)定義せよ。 例えば、(minimum '(1 2 3 4))は1、 (minimum '(10 2 -3 40 -55))は -55となる。 (なお引数が空リストの場合 (minimum '()) は考慮しなくて良い。)

以上の問題をすべて解いてください。 問題2以外は代入(set!)を使わずにプログラムを作成すること。

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

提出要領


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