J'ai une question que je voudrais vous demander quelque chose au sujet d'un extrait de code:Prolog coupé dans la méthode
insert_pq(State, [], [State]) :- !.
insert_pq(State, [H|Tail], [State, H|Tail]) :-
precedes(State, H).
insert_pq(State, [H|T], [H|Tnew]) :-
insert_pq(State, T, Tnew).
precedes(X, Y) :- X < Y. % < needs to be defined depending on problem
la fonction ajoute très clairement un élément à une file d'attente prioritaire. Le problème que j'ai est l'opérateur de coupure dans la première ligne. Vraisemblablement, chaque fois que l'appel atteint cette ligne de code, ceci est la seule solution possible à la requête, et les appels de fonction se dérouleraient simplement (ou est-ce liquidation?), Il n'y aurait pas besoin de reculer et de chercher une autre solution. question.
Donc, cette coupure ici est superflue. Ai-je raison dans ma déduction?