Scheme 如何在Guile方案中一次只读取一个表达式

Scheme 如何在Guile方案中一次只读取一个表达式,scheme,lisp,guile,Scheme,Lisp,Guile,我试图在Guile方案中进行读者扩展。在编写此读卡器扩展时,我希望使用一个guile函数,该函数一次只读入一个表达式,如read expression和read sexp,但这些函数在默认名称空间中似乎不可用。我找不到关于这些函数的文档,所以我不知道要导入哪些模块来使用它们。我知道它们是在Guile源代码(read.c)中实现的,分别是scm\u read\u expression和scm\u read\u sexp。我一直假设这些函数暴露于某个Scheme API,因此“scm\uuuu”前缀

我试图在Guile方案中进行读者扩展。在编写此读卡器扩展时,我希望使用一个guile函数,该函数一次只读入一个表达式,如
read expression
read sexp
,但这些函数在默认名称空间中似乎不可用。我找不到关于这些函数的文档,所以我不知道要导入哪些模块来使用它们。我知道它们是在Guile源代码(read.c)中实现的,分别是
scm\u read\u expression
scm\u read\u sexp
。我一直假设这些函数暴露于某个Scheme API,因此“
scm\uuuu
”前缀。。。这个假设有效吗?无论哪种方式,在某些Guile模块中是否存在允许我一次只读入一个表达式的函数?

当问这个问题时,我错误地认为
read
会读取给定端口中的所有表达式。事实上,
read
只在一个表达式中读取,因此我的行为也是如此。请参见此处的手动输入: