id_memberchk_kv( [K-V|_T], M-V1 ) :- K == M, !, V1 = V. id_memberchk_kv( [_H|T], M ) :- id_memberchk_kv( T, M ). id_memberchk( [H|_T], El ) :- H == El, !. id_memberchk( [_H|T], El ) :- id_memberchk( T, El ). id_select(ElK-ElV, [K-V|Tail], Tail) :- ElK == K, !, ElV = V. id_select(Element, [Head|Tail1], [Head|Tail2]) :- id_select(Element, Tail1, Tail2).