Prolog działania na listach

0

Szukam najprostszego przykładu jak w Prologu wykonać działanie typu:

  1. Dodaj co 2 element listy, albo co 3 element ...

I jakie jeszcze inne moga być zadania na tym poziomie ? Ma ktoś jakieś działające przykłady aby można było je przeanalizować i spróbować samemu napisać

1

Hm, no ok.

Dodawanie co drugi element listy:

add2nd([X], X).
add2nd([X, _], X).
add2nd([Head, _|Rst], Sum) :-
    add2nd(Rst, Sum1),
    Sum is Sum1 + Head.

Czytane jako:
suma co drugiego elementu listy [X] (jednoelementowa lista) to X
suma co drugiego elementu listy [X, Y] (dwuelementowa lista) to X
suma co drugiego elementu listy [X, Y, ...] (wieloelementowa lista) to X + suma co drugiego elementu reszty listy

Testy:

add2nd([1, 2, 3, 4, 5], X).
X = 9

add2nd([1], X).
X = 1

add2nd([X], 1).
X = 1

Co trzeci element kod prawie identyczny.

1

http://fulmanski.pl/zajecia/prolog/wyklad.pdf -- fajne, listy to rozdział 4.
http://informatyka.umcs.lublin.pl/files/bylina.pdf -- może też to, rozdział 6, ale może trochę za dużo teorii...?

1 użytkowników online, w tym zalogowanych: 0, gości: 1