Advertisement
ganryu

ejercicios

Apr 6th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.36 KB | None | 0 0
  1. p(X) :- q(X), r(X).
  2. q(a).
  3. q(b).
  4. q(c).
  5. r(b).
  6.  
  7. % esLista(L): true si L es una lista.
  8. esLista([]).
  9. esLista([_|_]).
  10.  
  11. % concat(L1, L2, L3): L3 es la concatenación de L1 y L2
  12. concat([], L, L) :- !, esLista(L).
  13. concat([E|L1], L2, [E|L3]) :- concat(L1, L2, L3).
  14.  
  15.  
  16. % fib(N, R): N es el ordinal de R en la secuencia de fibonacci
  17. fib(0, 1).
  18. fib(1, 1).
  19. fib(N, R) :- A is N-1, A2 is N-2, fib(A, R1), fib(A2, R2), R is R1 + R2.
  20.  
  21. % ack(M, N, R): R es el resultado de aplicar la función de ackerman sobre los argumentos M y N
  22. ack(0, N, R) :- !, R is N + 1.
  23. ack(M, 0, R) :- !, M2 is M - 1, ack(M2, 1, R).
  24. ack(M, N, R) :- M > 0, N > 0, !, M2 is M - 1, N2 is N - 1, ack(M, N2, R2), ack(M2, R2, R).
  25.  
  26. madre(maria, juan).
  27. padre(juan, carlos).
  28.  
  29. es-madre(X) :- madre(X, _).
  30. madre-padre(M, H) :- madre(M, H).
  31. madre-padre(P, H) :- padre(P, H).
  32. hijo(X, Y) :- madre-padre(Y, X).
  33. abuela(X, Y) :- madre(X, Z), madre-padre(Z, Y).
  34. mismo-padre(X, Y) :- padre(Z, X), padre(Z, Y).
  35. misma-madre(X, Y) :- madre(Z, X), madre(Z, Y).
  36. hermanos(X, Y) :- mismo-padre(X, Y), misma-madre(X, Y).
  37.  
  38. invertirLista(L, R) :- invertirLista(L, [], R).
  39. invertirLista([], L, L).
  40. invertirLista([H|T], Prev, R) :- invertirLista(T, [H|Prev], R).
  41.  
  42. % remover(E, L, LS): LS es la lista resultante de remover todos los elementos E en la lista L
  43. remover(E, [], L).
  44. remover(E, [H|T], LSE) :- remover(E, T, [H|LSE]).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement