だから私はこの仕事をしていますが、私は今のところ苦労しています。私は、2つの単語が同じ母音を持っているかどうかをチェックするプログラムを書くことになっています。それは署名だだ これを行うためにハスケルの単語の個々の文字列をチェックするにはどうすればよいですか?
vowelEq :: String -> String -> Bool
、私はcharが母音であり、それに応じてブール値を返した場合、基本的にチェックvowelCheckと呼ばれる機能を、作りました。
vowelCheck :: Char -> Bool
vowelCheck v | (v == 'a' || v == 'A') = True
| (v == 'e' || v == 'E') = True
| (v == 'i' || v == 'I') = True
| (v == 'o' || v == 'O') = True
| (v == 'u' || v == 'U') = True
| otherwise = False
これまでのところ、それは私が持っているものです:
vowelEq :: String -> String -> Bool
vowelEq s1 s2 | vowelCheck(head(s1)) == vowelCheck(head(s2)) = True
| otherwise = False
をそれだけで単語(ヘッドS1)の最初の文字が母音であるかどうかを確認することができ、それは上と同じだ場合他の言葉。 ここに私の問題があります。残りの単語をチェックする方法はわかりません。私は尾を再帰的に使用する考えがありましたが、それはvowelEq(私は変更することは許されていませんが、あなたを気にします)の署名では機能しません。または、文字列の最初の要素を削除するだけで、大いに役立ちます。 これまでは、データ型を宣言する方法だけでなく、非常に基本的な関数を実行する方法も学んだので、たくさんのものはありません。
私は初心者ですから、クラスで最初にやったことですから、アドバイスや解決策を説明していただければ幸いです。
は「私は、二つの単語が同じ母音を持っているかどうかをチェックするプログラムを書くことになっています。」それはどういう意味ですか?母音も同じですか?すべての母音は同じですか?同じ順序で同じ母音ですか? – Thilo
これまでのところ、あなたの試みは、2つの弦が同じ位置に* a *母音を持っていることを確認する方向に向いています。同じ*母音ではありません。 – chepner
@Thilo同じ順序の母音を意味します。私は混乱のために申し訳ありません。だから 'vowelEq apple angle'は' True'を返します。 @chepner Welp、そうだよ!それを考えなかったのです!私は今すぐ修正するという特別な考えは持っていませんが、 'vowelCheck'を変更して別の' Char'を返すようにして比較すると 'Char'は仕事をするべきでしょうか? – Readler