从输入端口读取

从输入端口读取可以通过多种方式完成。我们可以使用 REPL 使用的 read 方法。它将读取和解释空格分隔的表达式。

以上面的字符串端口为例。我们可以从这个端口读取:

(define p
  (open-input-string "(a . (b . (c . ()))) 34"))
(read p) -> (a b c)
(read p) -> 34

我们可以使用特殊方法 read-char 从端口读取 char。这将从我们正在读取的端口返回一个 char。

(define p (open-input-string "hello"))
(read-char p) -> #\h