Iteracja na wielu listach w SML

Mam dwie listy w SML, powiedzmy listę A[(a,b,c),(d,e,f)] i lista B[b,e]. Chcę policzyć, ile wystąpień każdego elementu w B pasuje do drugiego elementu każdego potrójnego w A. Wyjściem powinno być 2. Ponieważb ie każdy występuje raz w A.

To jest mój kod do tej pory, ale mój licznik jest zawsze ustawiony na 0, gdy przechodzę z jednego elementu do drugiego w B. Wiem, że w Javie będzie to po prostu prosta podwójna pętla.

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)

questionAnswers(2)

yourAnswerToTheQuestion