Next: print-Y-axis 函数, Previous: 带标签示例图表, Up: 带有标记轴的图表   [Contents][Index]


C.1 打印图形的 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)) ; 第一版。
      (symbol-width (length graph-blank)))

正如我们将看到的,这个表达式并不完全正确。