This shows you the differences between two versions of the page.
pp:23:laboratoare:prolog:legare-executie [2023/05/16 15:28] bot.pp |
pp:23:laboratoare:prolog:legare-executie [2023/05/17 08:42] (current) alexandru.bala [Puterea generativă a limbajului] |
||
---|---|---|---|
Line 212: | Line 212: | ||
</code> | </code> | ||
- | Inițial, se va încerca unificarea scopul ''%%membru(N, [1, 2, 3])%%'' cu faptul ''%%membru(Elem, [Elem | _]).%%''. Deci ar trebui să unificăm ''%%Elem = N%%'' și ''%%Elem = 1%%'', ceea ce poate prin legarea ''%%N = 1%%''. | + | Inițial, se va încerca unificarea scopului ''%%membru(N, [1, 2, 3])%%'' cu faptul ''%%membru(Elem, [Elem | _]).%%''. Deci ar trebui să unificăm ''%%Elem = N%%'' și ''%%Elem = 1%%'', ceea ce poate prin legarea ''%%N = 1%%''. |
Când alegem să ni se mai //genereze// un răspuns, tastând ''%%;%%'', se va încerca unificarea cu antetul de regulă ''%%membru(Elem, [_ | Rest])%%'', în care ''%%Elem = N%%'', iar ''%%Rest = [2, 3]%%''. Această încercare implică satisfacerea unui nou scop, ''%%membru(N, [2, 3])%%''. Noul scop va unifica, de asemenea, cu primul fapt, ''%%membru(Elem, [Elem | _])%%'', din care va rezulta ''%%N = 2%%''. | Când alegem să ni se mai //genereze// un răspuns, tastând ''%%;%%'', se va încerca unificarea cu antetul de regulă ''%%membru(Elem, [_ | Rest])%%'', în care ''%%Elem = N%%'', iar ''%%Rest = [2, 3]%%''. Această încercare implică satisfacerea unui nou scop, ''%%membru(N, [2, 3])%%''. Noul scop va unifica, de asemenea, cu primul fapt, ''%%membru(Elem, [Elem | _])%%'', din care va rezulta ''%%N = 2%%''. |