un altro esempio?
Certo! Un altro esempio comune di uso di Prolog è per risolvere il problema del colore del grafo. In sostanza, vuoi colorare un grafo in modo tale che due nodi adiacenti non abbiano mai lo stesso colore. Ecco un esempio di come potrebbe essere definito in Prolog:\n\n```prolog\n% Definizione del grafo tramite adiacenza\nadiacente(1, 2).\nadiacente(1, 3).\nadiacente(1, 4).\nadiacente(2, 3).\nadiacente(3, 4).\n\n% Definizione dei colori che possono essere utilizzati\ncolore(rosso).\ncolore(verde).\ncolore(blu).\n\n% Predicato per colorare il grafo\ncolorazione(Nodo, Colore) :- colore(Colore), \\+ ((adiacente(Nodo, Nodo2), colore(Nodo2, Colore))).\n\n% Da eseguire per ottenere la colorazione del grafo\nrisolvi :- colore(1, C1), colore(2, C2), colore(3, C3), colore(4, C4),\nwrite('Colore per nodo 1: '), writeln(C1),\nwrite('Colore per nodo 2: '), writeln(C2),\nwrite('Colore per nodo 3: '), writeln(C3),\nwrite('Colore per nodo 4: '), writeln(C4).\n```\n\nIn questo caso, quando si esegue `risolvi.` Prolog fornirà una colorazione valida del grafo. Per esempio, potrebbe darci:\n\n```prolog\nColore per nodo 1: rosso\nColore per nodo 2: verde\nColore per nodo 3: blu\nColore per nodo 4: verde\ntrue.\n```\n\nQuesta è una soluzione valida perché nessun nodo adiacente ha lo stesso colore. Prolog utilizza backtracking per trovare questa soluzione.