Code: Select all
/*
Auteur: Kristof Overdulve
Studentennr.: 20051392
Datum: 27/04/2007
Sessie 4 Prolog
*/
%Exercise 1
tran(eins,one).
tran(zwei,two).
tran(drei,three).
tran(vier,four).
tran(fuenf,five).
tran(sechs,six).
tran(sieben,seven).
tran(acht,eight).
tran(neun,nine).
listtran([], []).
listtran([Q|T1], [A|T2]) :- tran(Q, A), listtran(T1, T2).
listtran(T1, T2) :- listtran(T2, T1).
%Exercise 2
twice([], []).
twice([H|T1], [H, H|T2]) :- twice(T1, T2).
%Exercise 3
equals([], []).
equals([H|T1], [H|T2]) :- equals(T1, T2).
palindrome(T1) :- reverse(T1, A), equals(T1, A).
%Exercise 4
zebra(Zebraowner) :- Street = [H1, H2, H3],
member(house(red, _, _), Street),
member(house(blue, _, _), Street),
member(house(green, _, _), Street),
member(house(red, englishman, _), Street),
member(house(_, spanish, jaguar), Street),
sublist([house(_, _, snail), house(_, japanese, _)], Street),
sublist([house(blue, _, _), house(_, _, snail)], Street),
member(house(_, Zebraowner, zebra), Street).
%define a sublist
sublist(SubList, List) :- append(_, Suffix, List),
append(SubList, _, Suffix).