从方案中的文件创建列表
我已经弄清楚了如何读取文件,并且使用以下代码进行工作:
(define p (read(open-input-file "starbucks4.sxml")))
但是如何将 p
存储为一个列表,其中元素由 \n
字符分隔。
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 Racket(或 PLT 方案),则可以使用
读取-line
函数读取文件的每一行来获取它们——但它们不会被读取为 s-exp,每个都只是一个字符串。If you're using Racket (or PLT Scheme), you can use the
read-line
function to read each line of the file to get them -- but they won't be read as s-exps, each will simply be a string.IIRC,MIT Scheme 和 Racket,以及其他一些实现,都具有 call-with-input-file 和 call-with-output-file 函数。有关其用法和 此 .org/software/mit-scheme/documentation/mit-scheme-ref/File-Ports.html" rel="nofollow noreferrer">此 以获得完整参考。
对于
\n
分隔列表,我知道的最好方法是使用 Common Lisp 风格格式化
功能。但如果您的实现没有这样的功能,您将需要手动中断列表并使用write
函数打印它。IIRC, both MIT Scheme and Racket, as far as some other implementations, have functions
call-with-input-file
andcall-with-output-file
. See this for details of their usage and this for complete reference.As for a
\n
separated list, the best approach I know is using Common Lisp styleformat
function. But if your implementation does't have such function, you will need to manually break your list and print it usingwrite
function.