.


:




:

































 

 

 

 





 

' , . , , 䳿 .

, , work() (), , , , , .. , end . (, ³, , , ).

, work3(). 㳺 ,

work3 (, 101, , 200,

work3 (, 211, , 450,

work3 (, 101, , 300, end)))

, , . end , , . , , , . : (, ³, , , ).

, , . () . record(), , .

() work (), . . . work() . , , ( NextRecord).

record (work (Name, Office, Post, Salary), work3 (Name, Office, Post, Salary, NextRecord)).

record (work (Name, Office, Post, Salary), work3 (_, _, _, _, NextRecord)) :- work3 (work (Name, Office, Post, Salary), NextRecord).

record(), 101 , , .

Goal: record (work (Name, 101, Post, Salary), work3 (, 101, , 200, work3 (, 211, , 450, work3 (, l01, , 300, end))).

³ :

Name=,

Post=onepaop,

Salary=200

Name=,

Post=,

Salary=300

print_101 5.1.

/* 5_1 */

domains

name = symbol

office = integer

worker = work (name, office)

/* */

work3 = work3 (name, office, work3); end

predicates

print_101

record (worker, work3)

goal

print_101.

clauses

record (work (X, Y), work3 (X, Y, _)).

record (work (X, Y), work3 (_, _, Z)) :- record (work (X, Y), Z).

print_101:- write ( 101 ), nl, record (work (X, 101), work3 (, 101, work3 (, 211, work3 (, 101, end)))), write (X), nl, fail.

work3(), . work() ( ³), work(), .

record() .





:


: 2015-11-05; !; : 322 |


:

:

! . .
==> ...

1867 - | 1663 -


© 2015-2024 lektsii.org - -

: 0.012 .