Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- p(X) :- q(X), r(X).
- q(a).
- q(b).
- q(c).
- r(b).
- % esLista(L): true si L es una lista.
- esLista([]).
- esLista([_|_]).
- % concat(L1, L2, L3): L3 es la concatenación de L1 y L2
- concat([], L, L) :- !, esLista(L).
- concat([E|L1], L2, [E|L3]) :- concat(L1, L2, L3).
- % fib(N, R): N es el ordinal de R en la secuencia de fibonacci
- fib(0, 1).
- fib(1, 1).
- fib(N, R) :- A is N-1, A2 is N-2, fib(A, R1), fib(A2, R2), R is R1 + R2.
- % ack(M, N, R): R es el resultado de aplicar la función de ackerman sobre los argumentos M y N
- ack(0, N, R) :- !, R is N + 1.
- ack(M, 0, R) :- !, M2 is M - 1, ack(M2, 1, R).
- ack(M, N, R) :- M > 0, N > 0, !, M2 is M - 1, N2 is N - 1, ack(M, N2, R2), ack(M2, R2, R).
- madre(maria, juan).
- padre(juan, carlos).
- es-madre(X) :- madre(X, _).
- madre-padre(M, H) :- madre(M, H).
- madre-padre(P, H) :- padre(P, H).
- hijo(X, Y) :- madre-padre(Y, X).
- abuela(X, Y) :- madre(X, Z), madre-padre(Z, Y).
- mismo-padre(X, Y) :- padre(Z, X), padre(Z, Y).
- misma-madre(X, Y) :- madre(Z, X), madre(Z, Y).
- hermanos(X, Y) :- mismo-padre(X, Y), misma-madre(X, Y).
- invertirLista(L, R) :- invertirLista(L, [], R).
- invertirLista([], L, L).
- invertirLista([H|T], Prev, R) :- invertirLista(T, [H|Prev], R).
- % remover(E, L, LS): LS es la lista resultante de remover todos los elementos E en la lista L
- remover(E, [], L).
- remover(E, [H|T], LSE) :- remover(E, T, [H|LSE]).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement