Recursividad En Prolog
Elimina Elemento eliminaElem(X,[X|Xs],Xs).eliminaElem(X,[Y|Ys],[Y|Zs]):eliminaElem(X,Ys,Zs).
Factorial factorial(0,1). factorial(1,1). factorial(X,Y) :- X>1, X1 is X-1, factorial(X1,Y1), Y is X*Y1.
Fibonaccifibonacci(0,0). fibonacci(1,1). fibonacci(N,Y) :- N>1, N1 is N-1, fibonacci(N1,Y1), N2 is N-2, fibonacci(N2,Y2), Y is Y1 + Y2.Longitud de una Lista longitudLista([],0). longitudLista([H|T],N):- longitudLista(T,N0), N is N0 + 1.
Mezcla de Vectoresmezcla(Xs,[],Xs). mezcla([],[Y|Ys],[Y|Ys]). mezcla([X|Xs],[Y|Ys],[X|Zs]):-X < Y, mezcla(Xs,[Y|Ys],Zs). mezcla([X|Xs],[Y|Ys],[Y|Zs]):-X >=Y, mezcla([X|Xs],Ys,Zs).
Potencia potencia(1,1,1). potencia(X,1,X). potencia(1,X,1). potencia(X,N,Y):- N >1, N1 is N-1,potencia(X,N1,Y1), Y is Y1*X.
Producto Escalar productoEscalar(Xs,Ys,P):- producto(Xs,Ys,0,P). producto([],[],P,P).producto([X|Xs],[Y|Ys],Pa,Pr):-PnisPa + X * Y, producto(Xs,Ys,Pn,Pr).
Repite elementos de un vector repite(0,X,[]). repite(N,X,[X|Xs]):-N > 0, N1is N - 1, repite(N1,X,Xs).
Suma acumulada sumAcum(Xs,Ys):-sumAc(Xs,0,Ys). sumAc([],S,[]). sumAc([X|Xs],Sa,[Sp|Ys]):-Sp is X +Sa, sumAc(Xs,Sp,Ys).
Sumatoria de elementos de un vector sumatoria([],0). sumatoria([X|Xs],S):-sumatoria(Xs,Sc), S is Sc + X.
Regístrate para leer el documento completo.