From 978c766d38b5aabb7d7199ac35a55d54da8bde60 Mon Sep 17 00:00:00 2001
From: Marius Frinken <m-frinken@gmx.de>
Date: Thu, 15 Nov 2018 19:16:19 +0100
Subject: [PATCH] improved tips.pl

---
 Marius/uebung03/tips.pl | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/Marius/uebung03/tips.pl b/Marius/uebung03/tips.pl
index 4e8a794..f57c206 100644
--- a/Marius/uebung03/tips.pl
+++ b/Marius/uebung03/tips.pl
@@ -20,8 +20,20 @@ tag_and_process(List):-
 
 %Prolog offers multiple ways of sorting, this is one
 
+% will delete duplicates
+% comp_triples(Delta, (C1,_,_),(C2,_,_)):-
+% 	compare(Delta,C1,C2).
+
+%more complicated version that allows for equal values and does not offer faulty backtracking
 comp_triples(Delta, (C1,_,_),(C2,_,_)):-
-	compare(Delta,C1,C2).
+	(
+		C1==C2 -> %if C1 has the same value as C2 , == does not unify
+		Delta = >;
+		compare(Delta,C1,C2)
+	).
+
+% line 31 is a "dirty" hack, if C1 equals C2 we still answer > "greater"
+% else, we use the built-in compare in line 32
 
 my_sort(ListOfTriples, SortedListOfTriples):-
 	predsort(comp_triples,ListOfTriples,SortedListOfTriples).
-- 
GitLab