This document describes algorithms and programs for processing lists in Prolog. It covers list syntax, unification in lists, recursive searching of lists, backtracking, ways to call predicates on lists, and example programs for finding elements in lists, inserting/removing elements, sorting lists, and applying list operations to solve problems involving graphs, combinations, and puzzles.
187. / DQDSHGURPDULDMRVH@ !
QR
,QVHUzFaDR GR (OHPHQWR HP 4XDOTXHU 3RVLzFaDR GD /LVWD
6H R HOHPHQWR uH LQVHULGR HP TXDOTXHU SRVLzFaDR GD OLVWD R SURJUDPD SRGH VHU GHnQLGR
HP IXQzFaDR GR SURJUDPD UHWLUDUBHOHPHQWR YLVWR QD VHzFaDR SJ
PRGR
225. DUJ! SULPHLUD OLVWD
DUJ! VHJXQGD OLVWD
DUJ! OLVWD FRQFDWHQDGD
VH R SULPHLUR DUJXPHQWR IRU D OLVWD YD]LD HQWaDR R VHJXQGR H R WHUFHLUR DUJXPHQWRV
VaDR D PHVPD OLVWD
VH R SULPHLUR DUJXPHQWR QaDR IRU D OLVWD YD]LD HQWaDR uH GR WLSR (OHP_/LVWD@ R
UHVXOWDGR GH VXD FRQFDWHQDzFaDR FRP D OLVWD /LVWD uH D OLVWD (OHP_/LVWD@ RQGH
/LVWD uH D FRQFDWHQDzFaDR GH /LVWD H /LVWD
FRQFDWHQDU@/LVWD/LVWD
424. DUJ! FRQMXQWR
DUJ! VXEFRQMXQWR
VH R FRQMXQWR uH R FRQMXQWR YD]LR R VXEFRQMXQWR uH R SUuRSULR FDVR FRQWUuDULR
JHUDU RV VXEFRQMXQWRV UHWHQGR QRV VXEFRQMXQWRV R SULPHLUR HOHPHQWR GR FRQ
MXQWR RX
UHPRYHQGR QRV VXEFRQMXQWRV R SULPHLUR HOHPHQWR GR FRQMXQWR
589. / PLQKRFDYDOR !
QR
'HWHUPLQDU DV RPELQDzFaRHV GRV (OHPHQWRV GH XP RQMXQWR
2 SUREOHPD FRQVLVWH QD VHOHzFaDR GH XP VXEFRQMXQWR GH XP GDGR FRQMXQWR GH HOHPHQWRV
RQGH D RUGHP HP TXH HVVHV HOHPHQWRV FRPSDUHFHP uH LUUHOHYDQWH 6RE HVVH SRQWR GH
YLVWD SRU H[HPSOR DV VHJXLQWHV OLVWDV TXH UHSUHVHQWDP VXEFRQMXQWRV VaDR HTXLYDOHQWHV
@@@@@@
(VVDV OLVWDV FRQVLGHUDGDV FRPR VHLV SHUPXWDzFaRHV GLIHUHQWHV VaDR WUDWDGDV FRPR VHQGR
DSHQDV XPD FRPELQDzFaDR $ IuRUPXOD TXH GuD R QuXPHUR WRWDO GH PDQHLUDV GH VHOHFLRQDU
U REMHWRV GH XP WRWDO GH Q REMHWRV uH
QU
Q
UQ U
590. 3DUD XP FRQMXQWR FRP Q HOHPHQWRV D E F DV QU FRPELQDzFaRHV GLIHUHQWHV GH U
HOHPHQWRV TXH SRGHP VHU H[WUDurGDV GHVVH FRQMXQWR FDHP HP GXDV FDWHJRULDV DTXHODV TXH
FRQWuHP R HOHPHQWR D H DTXHODV TXH QaDR FRQWuHP HVWH HOHPHQWR (P WRGDV DV FRPELQDzFaRHV
TXH FRQWuHP D RV RXWURV U