Scheme 从命令提示符接受单词并转换为字符串列表

Scheme 从命令提示符接受单词并转换为字符串列表,scheme,racket,Scheme,Racket,我想在DrRacket中编写一个代码,从命令提示符接受多个单词,并将它们转换为字符串列表。例如,如果我在提示符中输入hello how do you,则应将其转换为列表(“hello”“how”“do”“you”“do”)。在DrRacket有可能吗 我试过这个: (定义inp lst(读取)) 运行此代码时,命令promt中会显示一个输入栏。但是当我进入上一行时,inp lst的值正好是hello。有人能帮忙吗?第一步,在引号之间键入您的输入,如下所示: (define inp-lst (re

我想在DrRacket中编写一个代码,从命令提示符接受多个单词,并将它们转换为字符串列表。例如,如果我在提示符中输入hello how do you,则应将其转换为列表(“hello”“how”“do”“you”“do”)。在DrRacket有可能吗

我试过这个: (定义inp lst(读取))


运行此代码时,命令promt中会显示一个输入栏。但是当我进入上一行时,inp lst的值正好是hello。有人能帮忙吗?

第一步,在引号之间键入您的输入,如下所示:

(define inp-lst (read))
"hello how do you do"
现在,您可以创建一个字符串列表来执行以下操作:

(regexp-split #px" " inp-lst)
> '("hello" "how" "do" "you" "do")
编辑:

正如评论中所指出的,
阅读行
可能是更好的选择:

(define inp-lst (read-line))
(regexp-split #px" " inp-lst)
> '("hello" "how" "do" "you" "do")

使用
read line
,您不需要在键入的文本周围加引号。

read函数读取一个表达式,在您的例子中,它是单个符号“hello”。您的目的是读取一行,以#\newline结尾,获取一个字符串,然后用#\space将其拆分。试试“阅读行”

(阅读)
似乎对我不起作用。。。我必须执行
(需要readline/readline)
,然后执行
(readline“Input:”)
以获得提示。。编辑:nvm,但readline可能更符合Rajesh的要求。是的。当我运行(define inp lst(read line))并在提示符中输入一行时,say hello world,inp lst的值现在是“hello world”完美!现在,您可以将其拆分为由#\空格分隔的“令牌”。