I am not understanding the function passing in the accumulate function
int numIdenticalPairs(vector<int>& A) {
return accumulate(A.begin(), A.end(), 0, [count = unordered_map<int, int> {}] (auto a, auto b) mutable {
return a + count[b]++;
});
}