jako początkujący Prolog, stwierdziłem, że wyrażenia przemienne w Prologu nie są intuicyjne.Alternatywa ekspresji "Commutativity" w Prologu?
na przykład jeśli chcę wyrazić X i Y są w jednej rodzinie, jak:
family(X,Y) :-
married(X,Y);
relative(X,Y);
father_son(X,Y).
Należy również dodać następujące definicji, w celu uczynienia go „przemienne”:
married(Y,X);
relative(Y,X);
father_son(Y,X).
Ale używamy Prolog, ponieważ chcemy pisać elegancki kod ... tak, to mam nadzieję dodać tylko jedną linię (zamiast powyżej trzech) do oryginału:
family(Y,X).
Oto PUNKT. prowadzi do oznaczenia! dlaczego prolog nie jest tak "logiczny"? i czy istnieje alternatywa dla tego zgrabnego, jednorzędowego wyrażenia, które nie prowadzi do unieważnienia?
Przyjemne weekendy! wat
Rozumiem, i to jest również jasne, dlaczego to nieodwracalne. Dzięki! – Matt
Proponuję także użycie osobnych faktów zamiast; –
@AlexanderSerebrenik Absolutnie - chciałem pozostać blisko stylu oryginału. Jednak w czasach prologu wolałem kilka reguł od ';' dla czytelności i łatwości debugowania. – dasblinkenlight