Προς το περιεχόμενο

Απορίες σε Prolog


g1org0s

Προτεινόμενες αναρτήσεις

Δημοσ.

Μήπως θα μπορούσε κάποιος να μου εξηγήσει τη σημαίνουν τα πιο κάτω κατηγορήματα στην prolog

 

Πρώτο κατηγόρημα:

xromata([Kombos-Xroma|Rest]):-

xromata(Rest),

member(Xroma, [mauro,leuko,prasino,portokali]),

\+ (member(Kombos1-Xroma, Rest), neighbour(Kombos,Kombos1)).

 

Δεύτερο κατηγόρημα:

neighbour(Kombos,Kombos1):-

ngb(Kombos, Neighbours),

member(Kombos1, Neighbours).

 

 

Τρίτο κατηγόρημα:

member(X, [X|_]).

member(X, [_|T]):-

member(X, T).

 

Θα ήθελα να μου πείτε τι κάνει το κάθε ένα και τι σημαίνει η κάθε μια εντολή.

 

Ευχαριστώ!!!

Δημοσ.

για το 3ο

member(X, Y)

ελεχγει αν το στοιχειο Χ ανηκει στη λιστα Υ (ή αναλογα πως θα κανεις το query, μπορει να σου επιστρεψει ενα-ενα τα στοιχεια της Υ)

το εξηγεί εδω αναλυτικα

 

για το 2ο

τι ειναι το ngb?

 

για το 3ο

θελει ψαξιμο και δεν εχω διαθεσιμη καποια prolog να το τρεξω. Μπορεις να μου δωσεις καποιο hint?

Δημοσ.

member(X, [X|_]).

 

το [X|_] και γενικά όταν βλέπεις το [x|y] σημαίνει ότι χωρίζει ένα στοιχείο Μ που θα του δώσεις σε δύο μέρη το χ που είναι η κεφαλή(δλδ το πρώτο στοιχείο της λίστα Μ) και το y που είναι λίστα. μετά μπορείς να χωρήσεις και πάλι την λίστα y κάνοντας ένα κατηγόρημα που θα δίνεις την y και θα χωρίζει το πρώτο στοιχείο της(κεφαλή) και το υπόλοιπο σώμα της. Οι κάτω παύλα (_) σημαίνει ότι δεν μας ενδιαφέρει στο συγκεκριμένο κατηγόρημα τι είναι αυτό που θα ήταν στη θέση του _, πχ θα μπορούσες να έχεις member(X,[X|Y]) αλλά αν δεν σε ενδιαφέρει το Y τότε μπορείς να γράψεις member(X, [X|_]).

 

Αυτά θυμάμαι τουλάχιστον.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...