如何在Scheme中读取输入文件?

如何在Scheme中读取输入文件?,scheme,Scheme,我试图将.txt文件中的数据输入到scheme结构中。每个元素由数据文件中的选项卡分隔,每个结构集位于新行上。我希望能够将数据从一行读入一个结构,并在文件中列出每个结构集。有什么建议吗?听起来像是一个带有制表符而不是逗号的CSV文件。如果您使用的是PLT方案(DrScheme/mzscheme) neil的csv库可能就是您想要的 以下是如何远程加载它: (require (planet neil/csv:1:2/csv)) 至少,说明书上是这么说的。在我的计划中,这是有效的: (requi

我试图将.txt文件中的数据输入到scheme结构中。每个元素由数据文件中的选项卡分隔,每个结构集位于新行上。我希望能够将数据从一行读入一个结构,并在文件中列出每个结构集。有什么建议吗?

听起来像是一个带有制表符而不是逗号的CSV文件。如果您使用的是PLT方案(DrScheme/mzscheme) neil的csv库可能就是您想要的

以下是如何远程加载它:

(require (planet neil/csv:1:2/csv))
至少,说明书上是这么说的。在我的计划中,这是有效的:

(require (planet "csv.ss" ("neil" "csv.plt" 1 (= 1))))

我不确定你想的是什么结构,但假设你有一个如下的文本文件:

--> cat blah.txt foo bar baz 1 2 3 4 5 aa bb cc dd ee -->cat blah.txt 福吧巴兹酒店 1 2 3 4 5 aa bb cc dd ee 您可以使用sed将其直接转换为scheme中的列表列表:

--> echo "(define mylist '("`sed -e 's/\(.*\)/(\1)/' blah.txt`"))" > foo.txt -->echo“(定义mylist'(`sed-e's/\(.*\)/(\1)/'blah.txt`)”>foo.txt 然后生成以下文件:

--> cat foo.txt (define mylist '((foo bar baz) (1 2 3 4 5) (aa bb cc dd ee))) -->cat foo.txt (定义mylist’((foo bar baz)(1 2 3 4 5)(aa bb cc dd ee))) 现在,您需要做的就是将文件加载到scheme中:

(load "foo.txt") (加载“foo.txt”)
您可以通过'mylist'变量访问结构。

什么类型的结构?您使用的是什么方案实现?您需要只使用R5R,还是可以使用impl。特定库、R6RS标准库、任何SRFI?这听起来像是其他人的家庭作业吗?