我想在 DrRacket 中编写一个代码,它接受来自命令提示符的多个单词并将它们转换为字符串列表。例如。如果我在提示中输入hello how do you do,它应该将其转换为列表'("hello" "how" "do" "you" "do")。DrRacket 有可能吗?
我试过这个:(定义inp-lst(读取))
运行此代码时,命令提示符中会显示一个输入栏。但是当我输入上述行时, inp-lst 的值原来只是'hello。有人可以帮忙吗?
第一步,在引号之间输入您的输入,如下所示:
(define inp-lst (read))
"hello how do you do"
现在,您可以创建一个字符串列表:
(regexp-split #px" " inp-lst)
> '("hello" "how" "do" "you" "do")
编辑 :
正如评论中指出的那样,read-line
可能是更好的选择:
(define inp-lst (read-line))
(regexp-split #px" " inp-lst)
> '("hello" "how" "do" "you" "do")
使用read-line
,您不需要用引号将键入的文本括起来。
“读取”函数读取一个表达式,在您的情况下它是单个符号“你好”。您的意图是读取一行,以#\newline 终止,获取一个字符串,然后用#\space 将其拆分。尝试“阅读线”