prolog

8 views
Skip to first unread message

Ricardo Corin

unread,
Oct 30, 2012, 4:38:52 PM10/30/12
to seguridad-...@googlegroups.com
hola gente

aca va un ejemplo de una funcion que itera sobre una lista,
revirtiendo el orden:

reverse([], Reversed, Reversed).
reverse([Head|Tail], SoFar, Reversed) :-
reverse(Tail, [Head|SoFar], Reversed).

la idea es que uno si quiere revertir una lista K hace esta llamada:

reverse(K, [], K2)

y K2 contiene la lista revertida. El parametro del medio va llevando
el resultado, inicialmente es [] y al final se copia
con la primera regla en el tercer parametro de resultado.

Si uno no usase ese parametro extra (el del medio), prolog devolveria
un parametro del estilo [X | _G] donde _G es una variable anonima
(representando cualq. cosa)

La idea es que el predicado normalize tiene la misma forma que este ejemplo.

saludos!
Reply all
Reply to author
Forward
0 new messages