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