Prolog: colas de elementos

2021-04-18 - Categorías: Inteligencia Artificial / Prolog
Prolog, haciendo una cola de elementos..

Siguiendo con los codekatas en Prolog, no podía faltar el howto para hacer una cola de elementos. Simplemente es una modificación del post anterior sobre cómo hacer una pila de elementos en Prolog. Ahora lo que cambia es que al ser una estructura de tipo cola, encolamos al final de la cola, y desencolamos al principio de la cola.

El código fuente

Es muy parecido al anterior:

% Probando una cola en Prolog..

:- dynamic cola/1.

cola([1,2,3]).

escribeCola :- 
    cola(X),
    listaElementosDeLaCola(X).

listaElementosDeLaCola([]).
listaElementosDeLaCola([Cabeza|Cola]) :- 
    write('Esto es un elemento de la cola: '),write(Cabeza),nl,
    listaElementosDeLaCola(Cola),
    true.

extraeDeCola :-
    cola([Cabeza|Cola]),
    write(Cabeza),nl,
    retract(cola([Cabeza|Cola])),
    assert(cola(Cola)).

añadeEnCola :-
    write('¿Qué elemento quieres añadir?'),nl,
    read(NuevoElemento),
    retract(cola(X)),
    append(X, [NuevoElemento], NuevaCola),
    assert(cola(NuevaCola)).

Con respecto al post anterior, sólo cambia en el momento de encolar, en la línea del append.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

© 2021 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.