equal
deleted
inserted
replaced
37 = |
37 = |
38 struct |
38 struct |
39 |
39 |
40 (*a left-to-right scan of terms1, seeking a term u that is also in terms2*) |
40 (*a left-to-right scan of terms1, seeking a term u that is also in terms2*) |
41 fun find_common (terms1,terms2) = |
41 fun find_common (terms1,terms2) = |
42 let val tab2 = fold (Termtab.curried_update o rpair ()) terms2 Termtab.empty |
42 let val tab2 = fold (Termtab.update o rpair ()) terms2 Termtab.empty |
43 fun seek [] = raise TERM("find_common", []) |
43 fun seek [] = raise TERM("find_common", []) |
44 | seek (u::terms) = |
44 | seek (u::terms) = |
45 if Termtab.defined tab2 u then u |
45 if Termtab.defined tab2 u then u |
46 else seek terms |
46 else seek terms |
47 in seek terms1 end; |
47 in seek terms1 end; |