Prolog: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Hello, world!: Aggiunto syntaxhighlight
aggiunto syntaxhighlight
Riga 16:
Il seguente esempio stampa il testo "[[Hello world]]".
<syntaxhighlight lang="prolog">
?- write('Hello World'), nl.
</syntaxhighlight>
 
Riga 22:
 
La potenza di Prolog non risiede comunque nella sua gestione dell'input/output, quanto nella possibilità di rappresentare semplicemente concetti complessi, ad esempio algoritmi [[combinatoria|combinatori]]. Ecco un programma che calcola tutte le possibili permutazioni di una parola data come lista di caratteri:
<syntaxhighlight lang="prolog">
 
''permutation([],[]).''
''permutation(Xs,[Z|Zs]) :- select(Z,Xs,Ys), permutation(Ys,Zs).''
select(X,[X|Xs],Xs).
'' ''
''select(XY,[X|Xs],[X|Ys]) :- select(Y,Xs,Ys).''
</syntaxhighlight>
''select(Y,[X|Xs],[X|Ys]) :- select(Y,Xs,Ys).''
 
=== Meta-Interpretazione ===
 
In Prolog è semplice scrivere interpreti e compilatori. Ad esempio, un meta-interprete di Prolog (cioè un interprete Prolog scritto in Prolog) è costituito da solo 3 linee di codice:
<syntaxhighlight lang="prolog">
 
''vanilla(true).''
''vanilla((A,B)):- vanilla(A), vanilla(B).''
''vanilla(X):- X\==true, clause(X,B), vanilla(B).''
</syntaxhighlight>
 
== Implementazioni ==