你会如何阅读Scheme中的输入文件?

时间:2008-11-29 21:15:17

标签: scheme

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

2 个答案:

答案 0 :(得分:6)

不确定您的想法是什么结构,但是说您有一个如下文本文件:

--> cat blah.txt 
foo bar baz
1 2 3 4 5
aa bb cc dd ee

您可以使用sed将其直接转换为方案中的列表列表:

--> echo "(define 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)))

现在你所要做的就是将文件加载到方案中:

(load "foo.txt")

您可以通过`mylist'变量访问该结构。

答案 1 :(得分:3)

听起来像带有标签而不是逗号的CSV文件。如果你正在使用PLT Scheme(DrScheme / mzscheme) neil的csv库可能就是你想要的。

Here is the documentation

以下是如何远程加载它:

(require (planet neil/csv:1:2/csv))

至少,这就是指示所说的。在我稍微讽刺的DrScheme上,这是有用的:

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