Confiando en el orden de las reglas

Para calcular la distancia de Hamming entre dos listas de la misma longitud, utilizofoldl(hamm, A, B, 0, R). con esta definicion dehamm/4:

hamm(A, A, V, V) :- !.
hamm(A, B, V0, V1) :- A \= B, V1 is V0 + 1.

El corte en la primera regla evita el retroceso innecesario. La segunda regla, sin embargo, podría haberse escrito de manera diferente:

hamm2(A, A, V, V) :- !.
hamm2(_, _, V0, V1) :- V1 is V0 + 1.

yhamm2/4 todavía será correcto junto confoldl/5 o para consultas donde tanto A como B son molidas.

Entonces, ¿hay una buena razón para preferir el uno sobre el otro? ¿O hay una razón para mantener las reglas en ese orden o cambiarlas?

Sé que la consulta

hamm(a, B, 0, 1).

es falso, mientras

hamm2(a, B, 0, 1).

Es cierto, pero no puedo decidir cuál tiene más sentido. . .

Respuestas a la pregunta(2)

Su respuesta a la pregunta