, work3() . , .
, . , ' , . 5.1.
5.1
:
work4 (LeftTree, Name, Office, Post, Salary, RightTree)
LeftTree , , ( ) . RightTree , , , . , , , , , , (. 5.1), :
work4 (work4 (end, , 211, , 450, end), , 101, , 200, work4 (end, , 101, , 300, end))
record() , , :
, ,
, ,
, .
, , :
record (work (Name, Office, Post, Salary), work4 (LeftTree, _, _, _, _, _)) :- record (work (Name, Office, Post, Salary), LetfTree).
record (work (Name, Office, Post, Salary), work4 (_, Name, Office, Post, Salary, _)).
record (work (Name, Office, Post, Salary), work4 (_, _, _, _, _, RightTree)) :- record (work (Name, Office, Post, Salary), RightTree).
record() , , 101. .
Goal: record (work (Name, 101, Post, Salary), work4 (work4 (end, , 211, , 450, end), , 101, , 200, work4 (end, , 101, , 300, end)).
³ , . , record() , , .
Goal: record (OneRecord, work4 (work4 (end, , 211, , 450, end), , 101, , 200, work4 (end, , 101, , 300, end),)
:
OneRecord = work (, 211, , 450);
OneRecord = work (, 101, , 200);
OneRecord = work (, 101, , 300);