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 > > >> > > > > > > > > >
