Update prolog samples

This commit is contained in:
Ted Nyman
2013-12-29 12:24:02 -08:00
parent fbcad41813
commit 016f9852d6
3 changed files with 92 additions and 3 deletions

View File

@@ -0,0 +1,12 @@
-/* Prolog test file */
-male(john).
-male(peter).
-
-female(vick).
-female(christie).
-
-parents(john, peter, christie).
-parents(vick, peter, christie).
-
-/* X is a brother of Y */
-brother(X, Y) :- male(X), parents(X, F, M), parents(Y, F, M).

21
samples/Prolog/turing.pl Normal file
View File

@@ -0,0 +1,21 @@
-turing(Tape0, Tape) :-
- perform(q0, [], Ls, Tape0, Rs),
- reverse(Ls, Ls1),
- append(Ls1, Rs, Tape).
-
-perform(qf, Ls, Ls, Rs, Rs) :- !.
-perform(Q0, Ls0, Ls, Rs0, Rs) :-
- symbol(Rs0, Sym, RsRest),
- once(rule(Q0, Sym, Q1, NewSym, Action)),
- action(Action, Ls0, Ls1, [NewSym|RsRest], Rs1),
- perform(Q1, Ls1, Ls, Rs1, Rs).
-
-symbol([], b, []).
-symbol([Sym|Rs], Sym, Rs).
-
-action(left, Ls0, Ls, Rs0, Rs) :- left(Ls0, Ls, Rs0, Rs).
-action(stay, Ls, Ls, Rs, Rs).
-action(right, Ls0, [Sym|Ls0], [Sym|Rs], Rs).
-
-left([], [], Rs0, [b|Rs0]).
-left([L|Ls], Ls, Rs, [L|Rs]).