pr 4. :

odd([_]).
even([]).
even([_|t]):-
    odd([t]).

Rešitev:

odd([_]).
odd([_|T]):-
    even([T]).
even([]).
even([_|T]):-
    odd([T]).

fora je v tem, da morš male t je z velikimi nadomestit. Logika programa je
pa da je list lih č ma 1 element in sod č ma 0 elementov. Pol pa če ma x
velikost dolžine pa velja, da če je sod, potem more biti x-1 dolžine lih. Če
je x dolžine in lih potem mora bit x-1 in sod. Tko pol prideš do tega da ma
samo še 1 ali 0 elementov, kar ti pa potem robna pogoja (  odd([_]).
even([]).)potrdita ali je lih ali sod.

Predlagam ti da rešuješ na e-studiju tm je že velik stvari rešenih... :)
http://www.e-studij.si/UL/FRI/UNI-RI/MOS


LP, Domen

On 9/16/07, Gregor Mostar <[EMAIL PROTECTED]> wrote:
>
> Pomaga, pomaga. Hvala!
> Imas morda se voljo za 1. in 4. nalogo?
>
> tole na pamet delam ampak mislm da je neki tazga
> >
> > findall(X, (delete(X, L, L1), member(X, L1)), L2).
> >
> > fora je v tem da zbrišeš iz L seznama X element in dobiš L1 seznam. In
> če je
> > X element member od L1 potem pomeni da sta vsaj 2 taka elementa v L.
> Vrne ti
> > seznam L2.
> >
> > upam da pomaga  :)
> >
> > LP, Domen
> >
> >
>

Reply via email to