como principiante en Prolog, encontré que la expresión conmutativa en Prolog no es muy intuitiva.¿Alternativa para expresar "conmutatividad" en Prolog?
por ejemplo si quiero expresar X e Y son de una misma familia, como:
family(X,Y) :-
married(X,Y);
relative(X,Y);
father_son(X,Y).
También me gustaría añadir lo siguiente a la definición, con el fin de que sea "conmutativa":
married(Y,X);
relative(Y,X);
father_son(Y,X).
Pero usamos Prolog, porque queremos escribir código elegante ... así que, yo espero que añadir una sola línea (en lugar de los tres anteriores) a la original:
family(Y,X).
Aquí está el PUNTO. ¡conduce a la falta de determinación! ¿Por qué el prólogo no es tan "lógico"? y ¿hay una alternativa a esta expresión limpia de una línea que no conduzca a la falta de determinación?
¡Buenos fines de semana! vatios
Veo, y también está claro por qué no termina. ¡Gracias! – Matt
también sugeriría usar hechos separados en lugar de; –
@AlexanderSerebrenik Absolutamente - Quería estar cerca del estilo del original. Sin embargo, en mis días de Prolog, preferí varias reglas sobre ';' para facilitar la lectura y la depuración. – dasblinkenlight