特にStringsの要素です。したがって、["so", "what", "and", "so", "for" "so"]
となり、返信は["so", "so", "so"]
となります。私の問題は、私の関数が入力されたものと同じリストを返すということです。リストをとり、最初の要素と同じすべての要素のリストを返しますが、関数が機能していない関数を作成しようとしています
ここでは、関連するすべてのコードです:
lookAhead :: [String] -> String
lookAhead [] = []
lookAhead (c:cs) = c
groupFirst :: [String] -> [String]
groupFirst [] = []
groupFirst (x:xs)
| lookAhead xs == x = x : (groupFirst ((lookAhead xs):(tail xs)))
| lookAhead xs /= x = x : (groupFirst xs)
| lookAhead xs == [] = x : []
デバッグの1つの方法は、入力を渡すときに各ステップで何が起こるかを注意深く考えることです。あなたは '[" "so"、 "what"] 'で始めることができます。それでも問題が解決しない場合は、ソリューションを小さな部分に分割してください。 – jberryman
'x'が各再帰的ステップでリストの最初の要素であれば、それをどのように比較したいですか?この比較で扱う必要があるケースはいくつありますか?結果リストに 'x'をいつ含めるのですか? – duplode