pbp Δημοσ. 12 Δεκεμβρίου 2011 Δημοσ. 12 Δεκεμβρίου 2011 > suzeuksi(X,Y,0) :- X=0;Y=0. suzeuksi(X,Y,1) :- X=1,Y=1. Γεια σας, έχω φτιάξει τον κανόνα της σύζευξης σε prolog και δουλεύει σωστά μονο που όταν πατάω suzeuksi(0,0,X). μου βγάζει 2 φορές X=0. και καταλαβαίνω ότι το κάνει γιατί μπαίνει 2 φορές στον πάνω κανόνα. Μήπως όμως μπορείτε να μου πείτε πως μπορώ να το αποφύγω αυτό? Ευχαριστώ.
migf1 Δημοσ. 13 Δεκεμβρίου 2011 Δημοσ. 13 Δεκεμβρίου 2011 Χλωμό να βρεις Prolog εδώ, δοκίμασε σε κάποιο από τα δημοφιλή ξένα φόρουμ.
georgemarios Δημοσ. 14 Δεκεμβρίου 2011 Δημοσ. 14 Δεκεμβρίου 2011 Νομίζω αυτό θες > suzeuksi(X,_,0) :- X=0, ! . suzeuksi(_,Y,0) :- Y=0, !. suzeuksi(X,Y,1) :- X=1,Y=1. Μπορεί να γίνεται και πιο κομψά, έχω αιώνες να ασχοληθώ με προλογκ
pbp Δημοσ. 14 Δεκεμβρίου 2011 Μέλος Δημοσ. 14 Δεκεμβρίου 2011 Νομίζω αυτό θες > suzeuksi(X,_,0) :- X=0, ! . suzeuksi(_,Y,0) :- Y=0, !. suzeuksi(X,Y,1) :- X=1,Y=1. Μπορεί να γίνεται και πιο κομψά, έχω αιώνες να ασχοληθώ με προλογκ Σε ευχαριστώ πολύ φίλε μου, Να σαι καλά
pbp Δημοσ. 14 Δεκεμβρίου 2011 Μέλος Δημοσ. 14 Δεκεμβρίου 2011 Σε ευχαριστώ πολύ φίλε μου, Να σαι καλά Τώρα που το ξαναβλέπω... Το θαυμαστικό τι ακριβώς κάνει? Είναι σα να του λέει σταμάτα τον έλεγχο εδώ?
georgemarios Δημοσ. 14 Δεκεμβρίου 2011 Δημοσ. 14 Δεκεμβρίου 2011 Χονδρικά ναι, ονομάζεται cut/1 predicate και αυτό που κάνει απενεργοποιεί το backtracking από το σημείο που εμφανίζεται και μετά.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα