Chapter 7 练习 (Exercises)

  1. 定义一个函数,接受一个文件名并返回一个由字符串组成的列表,来表示文件里的每一行。
  2. 定义一个函数,接受一个文件名并返回一个由表达式组成的列表,来表示文件里的每一行。
  3. 假设有某种格式的文件文件,注解是由 % 字符表示。从这个字符开始直到行尾都会被忽略。定义一个函数,接受两个文件名称,并拷贝第一个文件的内容去掉注解,写至第二个文件。
  4. 定义一个函数,接受一个二维浮点数组,将其用简洁的栏位显示。每个元素应印至小数点二位,一栏十个字符宽。(假设所有的字符可以容纳)。你会需要 array-dimensions (参见 361 页,译注: Appendix D)。
  5. 修改 stream-subst 来允许万用字符 (wildcard) 可以在模式中使用。若字符 + 出现在 old 里,它应该匹配任何输入字符。
  6. 修改 stream-subst 来允许模式可以包含一个用来匹配任何数字的元素,以及一个可以匹配任何英文字符的元素或是一个可以匹配任何字符的元素。模式必须可以匹配任何特定的输入字符。(提示: old 可以不是一个字符串。)

脚注

[1]你可以给一个字符串取代路径名,但这样就不可携了 (portable)。
[2]要让向量与数组这样被显示,将 print-array 设为真。
[3]Lisp 不能只用 #’ 来表示函数,因为 #’ 本身无法提供表示闭包的方式。