If you don’t need to care about multiple elements, an easy way is to calculate the length of the intersection
import Data.List
matches :: Eq a => [a] -> [a] -> Int
matches xs ys = length (intersect xs ys)
Somewhat more efficient use Setas intermediate structures if you also have an instance Ord:
import qualified Data.Set as S
matches :: Ord a => [a] -> [a] -> Int
matches xs ys = S.size (S.intersection (S.fromList xs) (S.fromList ys))
If you need to take care of repetitions, using Mapcounting the number of occurrences for each element will not be a very complicated modification.