スキーム インターフェイスに慣れるための練習として、与えられたさまざまな文字列をチェックし、提供されたものに応じて適切な文字列を返す Dr. 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.")))
※紐と紐の間はちょうど収まる程度です。インタプリタ内の 1 つの長いステートメントです。
望ましい効果は、次のものを入れた場合です。
(conversation "hello Racket")
(conversation "hi Racket")
(conversation "hey Racket")
それらはすべて同じ結果を返します。これは「hey coder」です。しかし、それは起こっていることではありません。「ちょっとコーダー」を返すのは (会話「こんにちはラケット」) だけです。残りはすべて「no hable ingles」を返します。言語の他の多くの側面と同様に、私はスキーム内の文字列に精通しているわけではありません。このコンテキストで機能する代替手段については知りませんが、問題が or ステートメント内にあることはかなり確信しています。解決策を調べてみましたが、このタイプの説明に当てはまるものは見つかりませんでした。動作するコードの代替案を知っている人はいますか?