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)))
正如我们将看到的,这个表达式并不完全正确。