A razume mogoče kdo tole prolog nalogo (na enem izpitu je bla):
2) iterativni INC - povečati za 1 vsak element seznama.

Zdej v vajah sm našu eno rešitev za iterativni member, ampak ne dela, kot bi
mogla, tud če v vrstici "T = [], !, fail;" znak in (,) zamenjate za ali (;).

imember(X, L):-
    L \== [],
    assert(d(L)),
    repeat,
        retract(d([H|T])),
        (X = H;
         T = [], !, fail;
         assert(d(X)), fail).

Mislim, kapiram ta iterativni koncept, sam problem že pr tej implementaciji
je, kok se boš premiku po array-u. Ta ti bo namreč na imember(a, [a,b,b])
reku yes (tak ko treba), na imember(a, [b,a,b]) pa no.
Komu jasno?

Reply via email to