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.