Sapreste darmi un suggerimento per implementarla? Il problema sta nel pensarla in termini di programmazione funzionale, ho indicato il linguaggio caml, ma in realtà è indifferente, l'importante è capire l'idea.
EDIT: sono riuscito a scrivere qualcosa che si avvicini alla richiesta, ma c'è un errore che non mi permette di ottenre il tipo giusto:
- Codice:
(* comp : ('a * 'b) list -> ('b * 'c) list -> ('a * 'c) list *)
let rec comp l k = function
[],[] -> []
| (a, a')::b, (c, c')::d -> if c = a' then (a, c')::comp b d else comp b d;;