/* Ask ?-aless( 2, 3 ). Get: Yes. Ask ?-aless( 3, 2 ). Get: No. */ aless( X, Y ) :- name( X, L ), name( Y, M ), alessx( L, M ). alessx( [], [_|_] ). alessx( [X|_], [Y|_] ) :- X < Y. alessx( [P|Q], [R|S] ) :- P = R, alessx( Q, S ).