Итерация по нескольким спискам в SML

У меня есть два списка в SML, скажем, список A[(a,b,c),(d,e,f)] и список Б[b,e], Я хочу посчитать, сколько вхождений каждого элемента в B соответствует второму элементу каждой тройки в A. На выходе должно быть 2. Потому чтоb а такжеe каждый встречается один раз в А.

Пока это мой код, но мой счетчик всегда устанавливается в 0, когда я перехожу с одного элемента на другой в B. Я знаю, что в Java это будет просто двойной цикл for.

fun number_in_months (d : (int * int * int ) list, m : (int) list) = 
    if null m then 0 
    else if null d then number_in_months(d, tl m)
    else if (#2(hd d)) = (hd m) then 1 + number_in_months (tl d, m)
    else number_in_months(tl d, m)

Ответы на вопрос(2)

Ваш ответ на вопрос