[Précedent][Fin-Préc.][Bas][Nœud supérieur]
%%% - partie 2 - %%%
’Il fait beau’.
’Je suis en vacances’.
’C est la rentree’.
’Il va falloir travailler’ :- ’C est la rentree’.
’Je suis content’ :- ’Il fait beau’.
’Je suis content’ :- ’Je suis en vancances’.
%%% - partie 3.1 - %%%
prem([H|_], H).
rest([_|T], T).
der([E], E).
der([_|T], Z) :-
der(T, Z).
nieme(1, [H|_], H).
nieme(N, [_|T], Z) :-
N > 0,
N1 is N - 1,
nieme(N1, T, Z).
elem(E, [E|_]).
elem(E, [_|T]) :-
elem(E, T).
concat1([], X, X).
concat1([H|T], Y, [H|Z]) :-
concat1(T, Y, Z).
long([], 0).
long([_|T], N) :-
long(T, N1),
N is N1 + 1.
paire([]).
paire([_|T]) :-
impaire(T).
impaire([_]).
impaire([_|T]) :-
paire(T).
%% - partie 3.2 - %%
extraire(X, [X|L], L).
extraire(X, [Y|L1],[Y|L2]) :-
extraire(X,L1,L2).
sous_liste(L1, L) :-
concat1(_, L1, L2),
concat1(L2, _, L).
miroir(X, Y) :-
transfere(X, [], Y).
transfere([], L, L).
transfere([H|T], L1, L2) :-
transfere(T, [H|L1], L2).
palindrome(L) :-
miroir(L, L).
%% - partie 3.3 - %%
est_arbre([X]) :-
atom(X).
est_arbre([X, Y, Z]) :-
atom(X),
est_arbre(Y),
est_arbre(Z).
nombre_noeuds([_], 1).
nombre_noeuds([_, Y, Z], N) :-
nombre_noeuds(Y, N1),
nombre_noeuds(Z, N2),
N is N1 + N2 + 1.
prof([_], 0).
prof([_, Y, Z], N) :-
prof(Y, N1),
prof(Z, N2),
N is max(N1, N2) + 1.
[Précedent][Fin-Préc.][Haut][Nœud
supérieur]