Iteración sobre listas múltiples en SML

Tengo dos listas en SML, digamos lista A[(a,b,c),(d,e,f)] y lista B[b,e]. Quiero contar cuántas ocurrencias de cada elemento en B que coincida con el segundo elemento de cada triple en A. La salida debería ser 2. Porqueb ye cada uno ocurre una vez en A.

Este es mi código hasta ahora, pero mi contador siempre se establece en 0 cuando me muevo de un elemento a otro en B. Sé que en Java esto solo será un doble para el bucle.

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)

Respuestas a la pregunta(2)

Su respuesta a la pregunta