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 [] _ = error("empty list!")
howManyPrefixes (x:xs) y = map (\x -> (x,prefixCount x y)) xs