0

haskell で 2 つの関数を作成しましたが、haskell でプレフィックスの数を計算するために、3 つ目の関数を作成する必要があります。例を次に示します。

私はリストしなければなりません。1 つはプレフィックス リストで、もう 1 つはテキスト リストです。この関数が想定しているのは、プレフィックス リストの各単語がテキスト リストのすべての単語のプレフィックスである回数を計算し、それをタプル (単語、プレフィックスとして表示される回数) で提示することです。テキストの言葉で:

プレフィックスリスト ["go", "co"]

テキストリスト [「ゴルフ」、「会社」、「カウント」]

これは [("go", 1) , ("co", 2)] を返すはずです

私がこれまでに持っているのはこれです:

isPrefixOf :: (Eq a) => [a] -> [a] -> Bool
isPrefixOf [] _ = True
isPrefixOf _ [] = False
isPrefixOf (x:xs) (y:ys) = x == y  && isPrefixOf xs ys


prefixCount :: (Eq a1, Num a) => [a1] -> [[a1]] -> a
prefixCount _ [] = 0
prefixCount x (y:ys) | isPrefixOf x y = 1 + prefixCount x ys
                 | otherwise = prefixCount x ys



howManyPrefixes _ [] = 0
howManyPrefixes [] _ = 0
howManyPrefixes (x:xs) (y:ys) = (x, prefixCount x (y:ys))

何か助けはありますか?

4

1 に答える 1