Tā kā Prolog valodā nav citas iespējas organizēt ciklu (vismaz par mums nestastīja mūsu lektors: jūs viņu arī droši vien pazistat), visos risinājumos elementu kārtējai apstrādei tiek izmantota rekursija. Tāpēc visi risinājumi sastāv no divām daļām. Pirmajā daļā aprakstu likumu, kas deklarē izēju no rekursijas. Otrā daļa satur pašu apstrādi. Tā kā Prolog valodā likumu kartībā nav svarīga (tikai ja jūs izmantojiet atceršanu), šo daļu kartība var būt dažada.
Kopēja risinājumu shēma ir šāda. Sākuma saraksts tiek sadalīts divās daļās. Pirmā daļa ir saraksta galva un tas ir pirmais saraksta elements. Pāreju saraksta daļu sauc par saraksta asti. Šo galvas un astes kombināciju rakstā kvadratiekavās: [Galva | Aste ]. Tālāk ja rekursīvi izsauktai funkcijai pat parametri dot tikai asti, tad pirms galva kļūs stekā, viņu var apstrādāt. Rekursija turpinās, kamēr saraksts nebūs tukšs (to apraksta pirmajā risinājumu daļa). Un pēc tam sākas katras galvas atgriešana no steka. Tāpēc ja ir nepieciešams apstrādāt saraksta elementus pretejā kartībā, tad apstrādi var veikt pēc rekursīvas likuma izsaukšanas.…