2.2. call-with-input-file, with-input-from-file
打开文件也可以使用 call-with-input-file、with-input-from-file 函数。由于可以处理出错情况,使用这两个函数或许更为方便。
(call-with-input-file filename procedure)
以读取模式打开 filename 文件。procedure 是以读取端口为参数的函数。由于读取端口可能在其他地方被再次使用,而 procedure 返回时文件并不会被自动关闭,因此有必要显示关闭文件。将 [code 1] 的 read-file 使用 call-with-input-file 改写,可得 [code 2]。
[code 2


(with-input-from-file filename procedure)
将 filename 作为标准输入打开。此时 procedure 为无参函数。当 procedure 返回时文件将被自动关闭。使用非常方便。将 [code 1] 的 read-file 使用 with-input-from-file 改写,可得 [code 3]。
[code 3]
