Welche Verwendung hat if_ / 3?

Das Prädikatif_/3 scheint zu sein sehr beliebt unter den wenigen Hauptverursachern im Prolog-Teil von Stack Overflow.

Dieses Prädikat ist als solches implementiert, mit freundlicher Genehmigung von @false:

if_(If_1, Then_0, Else_0) :-
   call(If_1, T),
   (  T == true -> call(Then_0)
   ;  T == false -> call(Else_0)
   ;  nonvar(T) -> throw(error(type_error(boolean,T),_))
   ;  /* var(T) */ throw(error(instantiation_error,_))
   ).

ch konnte jedoch kein @ findeklar, einfach und prägnant Erklärung, was dieses Prädikat tut und welchen Nutzen es im Vergleich zu z. das klassische Wenn-Dann-Sonst-Konstrukt von Prologif -> then ; else.

Die meisten Links, die ich gefunden habe, verwenden dieses Prädikat direkt und geben nur wenige Erklärungen, warum es verwendet wird, die ein Nicht-Experte in Prolog leicht verstehen kann.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage