hola. tengo que hacer unas practicas para la uni de prolog, y hay dos que no las saco ni a tiros. Si alguien me puede echar una mano, se lo agradeceria. son estas:
6. todas_alternadas(L,LLA): cierto si LLA es una lista que contiene todas las listas alternadas que se
pueden formar con los elementos de L (considerando que L es una lista de números enteros distintos
entre si). Para realizar este predicado, implementar antes el siguiente:
alternar(L,LA): cierto si dada L, una lista de números enteros distintos entre si, LA es una lista
alternada que se puede formar con los elementos de L. Una lista es alternada si cada elemento está
entre dos que son mayores que él, o entre dos que son menores que él. Si L es una lista de dos
elementos, cualquier combinación de ellos se considera una lista alternada. Este predicado debe
devolver por backtraking todas las listas alternadas que se pueden formar a partir de L.
?- todas_alternadas([3,1,2],L).
L = [[3, 1, 2], [1, 3, 2], [2, 3, 1], [2, 1, 3]] ;
No
?- alternar([],L).
L = [] ;
No
?- alternar([1,2],L).
L = [1, 2] ;
L = [2, 1] ;
No
?- alternar([3,2,1],L).
L = [2, 3, 1] ;
L = [2, 1, 3] ;
L = [3, 1, 2] ;
L = [1, 3, 2] ;
No
y esta es la segunda:
7. filtrar_secuencias(N,L1,L2): cierto si L2 es la lista que contiene los elementos de L1 que pertenecen
a las secuencias de al menos N elementos iguales consecutivos.
?- filtrar_secuencias(3,[a,b,b,b,c,a,a,a,b,b,b,b,c,c,d],L).
L = [b,b,b,a,a,a,b,b,b,b] ;
No
?- filtrar_secuencias(4,[a,b,b,b,c,a,a,a],L).
L = [] ;
No
?- filtrar_secuencias(2,[],L).
L = [] ;
No
gracias de antemano