Páginas

Bienvenidos

Este blog busca darle algunas herramientas para trabajar con varios de los programas más interesantes y útiles de la actualidad.

El objetivo es emplear ejemplos y su desarrollo paso a paso para que el aprendizaje sea lo más fácil y real posible.

Mathematica

Mathematica
Mathematica

Etiquetas

Datos personales

Mi foto
Ingeniero
Esp. Informática y Computación
Esp. Administración de Sistemas

apache Flex

Mathematica

Todo el poder de Mathematica en la Web:



Ejemplos de uso:

1) Plot3D[Sin[x]*Cos[y],{x,0,2 Pi},{y,0,Pi}]
2) Colombia

Escribe el ejemplo y da clic en el igual

Seguidores

sábado, 14 de mayo de 2011

PostHeaderIcon PROLOG: Borra un elemento de una lista


Este programa elimina un elemento en una lista. Si el elemento a borrar existe en la lista mas de una vez, se obtendrán varias respuestas (por backtraking) y en cada una solo se eliminara un elemento:


my_remove_one_element(X, [X|Xs], Xs).

my_remove_one_element(X, [Y|Ys], [Y|Zs]):-
my_remove_one_element(X, Ys, Zs).


Para ejecutar el programa:


?- my_remove_one_element(b, [a,b,c,b,e,b,f,g], Zs).


Y el resultado es:


Zs = [a,c,b,e,b,f,g]
Zs = [a,b,c,e,b,f,g]
Zs = [a,b,c,b,e,f,g]


Para ejecutar el programa:


?- my_remove_one_element(b, Ys, [a,c,e]).


Y el resultado es:


Ys = [b,a,c,e]
Ys = [a,b,c,e]
Ys = [a,c,b,e]
Ys = [a,c,e,b]


*** Programa probado en WinProlog versión 4.7 ***


5 comentarios:

Anónimo dijo...

Necesito eliminar el ultimo elemento de una lista

a8a dijo...

Hola

Acabo de adicionar un ejemplo de como borrar el último elemento de una lista, espero te sirva:

http://xpasos.blogspot.com/2013/04/prolog-borra-ultimo-elemento-de-lista.html

Anónimo dijo...

Suponga que tiene los hechos que siguen:
Nombre (0, cero). Nombre (1, uno). Nombre (2, dos).
Nombre (3, tres). Nombre (4, cuatro). Nombre (5, cinco).
Nombre (6, seis). Nombre (7, siete). Nombre (8, ocho).
Nombre (9, nueve).
Escriba un predicado en PROLOG que traduzca una lista de números enteros, a una lista L1 de los nombres de los números presentes en la lista original.
Ejemplo: Si L = [1, 5, 6] el predicado debe generar la lista L1 = [uno, cinco, seis].

a8a dijo...

Hola

Acabo de ver el comentario anterior y según entiendo quieren hacer una regla que cambie una lista de números por su correspondiente en texto. Bueno, lo primero es corregir la info de entrada:

Nombre (0, cero) ...

falla, porque en Prolog las variables se inician con una mayúscula y en este caso como es un predicado debe ser en minúsculas, además no deben haber espacios entre Nombre y el paréntesis.

El programa sería algo así:

nombre(0, cero). nombre(1, uno). nombre(2, dos).
nombre(3, tres). nombre(4, cuatro). nombre(5, cinco).
nombre(6, seis). nombre(7, siete). nombre(8, ocho).
nombre(9, nueve).


cambia([], []).

cambia([X|Xs], [T|Ys]):-
nombre(X, T),
cambia(Xs, Ys).



Y para usarlo se daría:

?- cambia([1,5,6], L).


Y el resultado sería:

L = [uno,cinco,seis]


Espero les sirva.

Anónimo dijo...

Buenas, estoy tratando de eliminar n elementos de una lista, el problema es que me solo me elimina un elemento. Ejemplo alergias [amoxicilina, ampicilina] medicamentos_componente[amoxicilina,ampicilina] como resultado me tiene que dar [] pero como lo he hecho me devuelve [amoxicilina]. Alguna ide de como hacerlo? Gracias de antemano.

Publicar un comentario

Apache Flex

Wolfram Programming Lab