Niektóre pewne obliczenia i operacje stosunkowo łatwiej wykonać w Prologu niż w języku takim, jak Pascal lub C#.
Załóżmy, że w programie prologowym zdefiniujemy:
funkcja(A,B,C):-
f1(A,B),
f2(B,C).
Oznacza to, że wartości podstawione za zmienne A,B,C są w relacji "funkcja", czyli funkcja(A,B,C) jest prawdziwa w przypadku, gdy f1(A,B) i f2(A,B) jest prawdziwe. Funkcje f1 i f2 są zdefiniowane w programie, oczywiście główną funkcję też można zdefiniować.
Wywołanie "funkcja(1,2,3)" zwraca wartość prawda lub fałsz wedle definicji relacji dla podanych argumentów.
Natomiast wywołanie "funkcja(1,2,X)" zwraca wszystkie wartości, jakie można podstawić za X, żeby relacja była prawdziwa. Jak ktoś miał do czynienia z Prologiem, to wie o co chodzi.
W takim razie wywołanie funkcji postaci "funkcja(1,2,X)" można przedstawić jako funkcję X=funkcja(1,2), gdzie X jest listą wyników i zarazem wynikiem obliczeń logicznych w systemie prologowym.
Potrzebowałbym takiego kompilatora, że wczytuję program napisany w języku Prolog, definiuje listę przewidywanych wywołań i dostaję plik DLL z funkcjami, które można wykorzystać w pisanym przez siebie programie w C# lub Delphi.