我一直在学习 SICP,我想应用我迄今为止学到的一些概念。也就是说,积累、映射和过滤将帮助我提高工作效率。我主要使用 CSV 文件,并且我知道 MIT/GNU 方案不支持这种文件格式。但这没关系,因为我可以将 CSV 文件导出到 txt 文件,因为支持 txt 文件。
现在我阅读了手册的第 14 节输入/输出,坦率地说,缺乏具体的示例并不能帮助我入门。因此,我希望你们中的一些人能给我一个良好的开端。我有一个文本文件 foo.txt,其中包含国家列表的变量和观察结果。我只想将这个文件读入Scheme并操作数据。感谢您的帮助。任何示例代码都会有所帮助。
以下过程获取两个列表,并将它们的并集作为有序列表返回。
(defun stable-union (lst1 lst2)
(cond ((null lst1) lst2)
((null lst2) lst1)
((and (null lst1) (null lst2)) nil)
(t
(let ((el1 (car lst1))
(el2 (car lst2)))
(cond ((string= el1 el2)
(cons el1
(stable-union (cdr lst1) (cdr lst2))))
((string< el1 el2)
(cons el1
(stable-union (cdr lst1) lst2)))
(t
(cons el2
(stable-union lst1 (cdr lst2)))))))))
Run Code Online (Sandbox Code Playgroud)
它仅适用于某些示例,而不适用于其他示例。例如:
STABLE-UNION: (STABLE-UNION '(A B C) '(B A D)) failed:
Expected (A B C D) but saw (A B A C D)
STABLE-UNION: (STABLE-UNION '(A B C) …Run Code Online (Sandbox Code Playgroud)