% Figure 19.8 Learning about odd-length and even-length simultaneously. % Inducing odd and even length for lists backliteral( even( L), [ L:list], []). backliteral( odd( L), [ L:list], []). term( list, [X|L], [ X:item, L:list]). term( list, [], []). prolog_predicate( fail). start_clause([ odd( L) ] / [ L:list]). start_clause([ even( L) ] / [ L:list]). ex( even( [])). ex( even( [a,b])). ex( odd( [a])). ex( odd( [b,c,d])). ex( odd( [a,b,c,d,e])). ex( even( [a,b,c,d])). nex( even( [a])). nex( even( [a,b,c])). nex( odd( [])). nex( odd( [a,b])). nex( odd( [a,b,c,d])).