我想我对 Scheme 如何处理用户输入感到困惑。我只想从控制台读取用户在脚本运行时输入的一些值。例如,如果我想将用户的值添加到 3,我的印象是我可以使用:
(+ 3 (read))
我还可以将它包含在显示函数中以查看输出。这是我所期望的,但是当我尝试这样做时,它只等待控制台中的下一个代码。我正在尝试 biwascheme.org 和 ideone.com 作为口译员。
因此,我希望找到强制控制台等待用户输入然后将其放入(读取)位置的非常基本的方法。如何?
我想我对 Scheme 如何处理用户输入感到困惑。我只想从控制台读取用户在脚本运行时输入的一些值。例如,如果我想将用户的值添加到 3,我的印象是我可以使用:
(+ 3 (read))
我还可以将它包含在显示函数中以查看输出。这是我所期望的,但是当我尝试这样做时,它只等待控制台中的下一个代码。我正在尝试 biwascheme.org 和 ideone.com 作为口译员。
因此,我希望找到强制控制台等待用户输入然后将其放入(读取)位置的非常基本的方法。如何?
我发现repl.it 的 biwascheme 在线编程环境确实支持使用该函数读取用户输入(read)
,尽管它似乎没有记录在biwascheme 参考中。
例如,在 repl.it 上的 Scheme repl 中,在左侧键入:
(define (user-says-y)
(eq? (read) 'y))
(define (take-user-input)
(if (user-says-y)
(print "entered y!")
(print "did not enter y!")))
保存,运行,然后从右侧的终端调用该函数:
> (take-user-input)
如果您输入y
,您将看到该entered y!
消息,如果您输入,n
您将看到该did not enter y!
消息。
魔法。