viernes, 8 de noviembre de 2013

Cómo romper un List Apart en Prolog


PROLOG

Prolog es un lenguaje de programación que fue inventada en Francia en la década de 1960 para su uso en la traducción automática de las lenguas naturales. Fue desarrollado aún más en Escocia en la década de 1970 para su uso en demostradores automáticos. Se llegó a la atención de la mayoría de la gente cuando los japoneses lo elegimos por su idioma oficial en el proyecto de quinta generación - el proyecto nacional para desarrollar la Inteligencia Artificial. A principios del siglo 21, es - junto con LISP - uno de los dos idiomas principales utilizados por la comunidad de IA.



Romper listas aparte en Prolog mediante el examen de la cabeza - el primer elemento de la lista - y la cola - el resto de la lista. A medida que se examinan los elementos siguientes, usted puede decidir qué parte de la lista rota-up cada elemento pertenece.



A ver si un elemento es un miembro de una lista que aparecerá en la lista de forma recursiva. Para hacer esta pregunta en Prolog, escriba? Miembros (X, L) - X es un miembro de L? Esto requiere dos declaraciones Prolog: miembro (X, [X, T]). Esto nos dice que si X coincide con el primero en la lista, entonces X es miembro de L.



Escriba el paso recursivo para encontrar membresía como miembro (X, [_, T]): - Miembro (X, T). Esto salta sobre la cabeza de la lista si no es igual a X. Si usted trabaja su manera a través de la lista, X será [], la lista vacía.



Seleccione los n primeros elementos de una lista con los dos Prolog declaraciones firstn (L, M, R, 0). y firstn ([X | T1], [X | T2], R, n): - firstn (T1, T2, R, n-1). La primera declaración se detiene la recursión con los primeros n elementos de F y el resto en R. La segunda declaración mantiene despojar a la cabeza de la lista y ponerla en la lista F hasta que n = 0.



Separar una lista en dos listas, en una nueva lista contiene los elementos impares y la otra lista nueva contiene los elementos de número par, con cuatro declaraciones Prolog: ruptura (L, Impar, Par): - ruptura (L, Impar, Par , 1), ruptura ([], Impar, Par, _), ruptura ([X | T], [X | impar], Par, 1): - ruptura (L, Impar, Par, 0)... , ruptura ([X | T], Odd, [X | A], 0) .. La primera instrucción hace que las cosas empezaron bien, la segunda sentencia deja las cosas cuando la lista ha sido atravesadas y los dos últimos estados de forma recursiva separar la lista.



Consejos y advertencias

Prolog intenta aplicar las reglas en el orden en que se escriben. Invertir el orden de las reglas por lo general destruye el programa.



Nuevas listas se construyen en el orden inverso. Usted puede convertir de nuevo en torno a los tres Prolog declaraciones inversa (L, R): - reverse (L, [], R) .. reverse (H | T], S, R): - reverse (T, [X | S], R). e inverso ([], R, R) ..



 

No hay comentarios:

Publicar un comentario