为了让自己更熟悉方案接口,我尝试在 Racket 博士(尽管与 MIT 方案兼容)中编写一个程序,检查给定的各种不同字符串并根据提供的内容返回适当的字符串。我到目前为止是这样的:
(define (conversation input)
(cond ((eq? (or "hello Racket" "hi Racket" "what's up, Racket?"
"hey Racket" "what's happening, Racket?") input) "hey coder")
(else "no hablo ingles.")))
*字符串之间的空间正好适合这里。这是解释器中的一个长语句。
想要的效果是,如果我输入:
(conversation "hello Racket")
(conversation "hi Racket")
(conversation "hey Racket")
它们都将返回相同的结果,即“嘿 coder”。然而,事实并非如此。唯一返回“hey coder”的是(对话“hello Racket”)。其余的都返回“没有能力”。与该语言的许多其他方面一样,我对方案中的字符串不太了解。我相当确定问题出在 or 语句中,尽管我不知道在这种情况下可以使用的替代方案。我已经尝试查找解决方案,尽管我没有遇到任何符合这种描述的东西。有谁知道可以使用的代码的任何替代方法?