print-graph Varlist ¶print-graph 関数を記述する際、最初の作業は let 式に varlist
を記述することです。(関数をインタラクティブにすることや、ドキュメント文字列の内容に関する考察については、ひとまず脇に置いておきます。)
varlistには複数の値を設定する必要があります。明らかに、縦軸のラベル上部は少なくともグラフの高さ以上である必要があり、つまりここでこの情報を取得しなければなりません。なお、print-graph-body関数でもこの情報が必要であることに注意してください。グラフの高さを別々の場所で計算する理由はありませんので、この計算を活用するために、print-graph-bodyを以前に定義した方法から変更しましょう。
同様に、X軸ラベルを出力する関数とprint-graph-body関数の両方で、各記号の幅の値を学習させる必要があります。ここで計算を行い、print-graph-bodyの定義を前章で定義した方法から変更することができます。
横軸のラベルの長さは、グラフの長さ以上である必要があります。ただし、この情報は横軸を出力する関数でのみ使用されるため、ここで計算する必要はありません。
これらの考察から、print-graph の let における varlist の形式は、直ちに次のように導かれます。
(let ((height (apply 'max numbers-list)) ; First version.
(symbol-width (length graph-blank)))
これから見ていくように、この表現は必ずしも正しくない。