kaj pa tole?
e) Z vračanjem poišči vse elemente seznama L, pred katerimi v seznamu
ni nobenega večjega elementa! (npr, v L = [7,1,12,7,8,1] sta taka
elementa 7 in 12)!

2008/6/21 Uroš Jurglič <[EMAIL PROTECTED]>:
> setof( X, A^B^(parent(X,A), parent(X,B), not(A=B), female(A),
> female(B)), L ), length(L, N).
>
> tole bi po logiki slo, nisem pa sprobal...
>
>
> 2008/6/21 Miha Cerar <[EMAIL PROTECTED]>:
>>
>> Mal resujem naloge, in ce gre se kdo..bi mogocel znal vprasat prolog tole:
>> imate podano družinsko drevo (z relacijami parent ter male/female) -koliko
>> ljudi ima več kot dve hčerki?
>> Znam izpisat št. vseh ki imajo hči, več pa ne ..
>> Anyone?
>>
>> lp
>>
>> 2008/6/21 Uroš Jurglič <[EMAIL PROTECTED]>:
>>
>> > Jaz tuki ne vidim nobene razlike, vsaj ce imas class takole definiran:
>> > class(X, positive) :- X>0.
>> > class(X, negative) :- X<0.
>> >
>> > Potem gre pri splitu z rezom za 'zeleni rez' - ni deklarativne razlike, je
>> > samo postopkovna (torej samo optimizacija).
>> >
>> > Ce pozenem obe verziji in da uporabim zgornjo definicijo class, dobim vedno
>> > isti rezultat in ne tko kot si ti napisal. Razen ce imas class kako drugace
>> > definiran..?
>> >
>> >
>> >
>> >
>> >
>> > 2008/6/21 Miha Cerar <[EMAIL PROTECTED]>:
>> >
>> > > Še bolj postopkovno razloženo :)
>> > >
>> > > če ni reza dobiš tole:
>> > >
>> > > | ?- split([1,2,-3],P,L) .
>> > >  L = [-3],
>> > > P = [1,2] ? ;
>> > >
>> > > L = [2,-3],
>> > > P = [1] ? ;
>> > >
>> > > L = [1,-3],
>> > > P = [2] ? ;
>> > >
>> > > L = [1,2,-3],
>> > > P = [] ?
>> > >
>> > > če pa je pa samo pravilno:
>> > > | ?-
>> > > split([1,2,-3],P,L)
>> > > .
>> > >
>> > > L = [-3],
>> > > P = [1,2] ? ;
>> > >
>> > > 2008/6/21 Miha Cerar <[EMAIL PROTECTED]>:
>> > >
>> > > > verzija brez reza lahko pri vračanju kliče cilj class(X,
>> > > positive/negative)
>> > > > ne glede na to, kakšen je X
>> > > >
>> > > > 2008/6/21 Matjaz Horvat <[EMAIL PROTECTED]>:
>> > > >
>> > > > REZ
>> > > >> split([],[],[]).
>> > > >> split([X|R],[X|R1],N):-class(X,positive),!, split(R,R1,N).
>> > > >> split([X|R],P,[X|R1]):-class(X,negative), split(R,P,R1).
>> > > >>
>> > > >> BREZ
>> > > >> split([],[],[]).
>> > > >> split([X|R],[X|R1],N):-class(X,positive), split(R,R1,N).
>> > > >> split([X|R],P,[X|R1]):-class(X,negative), split(R,P,R1).
>> > > >>
>> > > >> Najdite in razložite problem pri verziji brez reza (verzija brez reza
>> > > >> lahko
>> > > >> pri vračanju
>> > > >> kliče cilj class(X, positive/negative) ne glede na to, kakšen je X).
>> > > >>
>> > > >> V čem je torej problem, če ni reza?
>> > > >>
>> > > >> lpM
>> > > >>
>> > > >
>> > > >
>> > >
>> >
>

Reply via email to