課題 2 (オプション課題) のヒント


課題 2 のオプション課題について、ヒントを出します。

課題中に書いた入れ子状式の作り方は、あくまで一例ですので、 別に違う解き方をしてくれてもよいです。 ヒントの方は、課題とおなじコード生成を行う場合の解き方です。


まずは、入れ子状の式に一時変数を順番に割り当てていくためには、 再帰的に部分式を処理する際に、 何番(n)以降の一時変数が利用可能であるかもわかっていないと いけません。

ということで、例えば、以下のような二つの関数を作ってみましょう。

ゆっくり考えれば、そんなに難しくないはず。

さて、このような関数が出来てしまえば、 一般の式を変換する関数(trans-expr expr) をつくることは、 課題 2 をこなした人にとっては簡単なはず。


2001.01.23/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp