come principiante di Prolog, ho trovato l'espressione commutativa in Prolog non del tutto intuitiva.Alternativa per esprimere "commutatività" in Prolog?
per esempio se voglio esprimere X e Y sono in una famiglia, come:
family(X,Y) :-
married(X,Y);
relative(X,Y);
father_son(X,Y).
Vorrei anche aggiungere quanto segue alla definizione, al fine di renderlo "commutativa":
married(Y,X);
relative(Y,X);
father_son(Y,X).
Ma usiamo Prolog, perché vogliamo scrivere codice elegante ... così, mi auguro di aggiungere una sola linea (al posto di quanto sopra tre) a quella originale:
family(Y,X).
Ecco il punto. porta al disastro! perché il prologo non è così "logico"? e c'è un'alternativa a questa espressione di una sola linea che non porta al disastro?
Fine settimana piacevoli! watt
Vedo, ed è anche chiaro il motivo per cui si stacca. Grazie! – Matt
vorrei anche suggerire di utilizzare fatti separati anziché; –
@AlexanderSerebrenik Assolutamente - Volevo stare vicino allo stile dell'originale. Tuttavia, nei giorni Prolog ho preferito più regole su ';' per la leggibilità e la facilità del debugging. – dasblinkenlight