в) all (x у z: x aged X and 30 LESS X and x job у and x earns z)
г)all (x: Frances stat x)
д) см. следующее упражнение.
Упражнение 3.4
X hobby Y if
X stat(Z x y z X1 Y1 Y Z1)
X car Y if
X stat(Z x y z X1 Y1 Z1 Y X2)
X music Y if
X stat (Z x у X1 X1 Z1 X2 Y Y2)
Bill stat (42 butcher 12∅∅∅ 23 19 7 golf Volvo jazz)
Упражнение 3.5
См. следующее упражнение.
Упражнение 3.6
а. all (X Y: X marriage (Z х у) and Y marriage (z X1 у) and X LESS Y)
В ответ на этот запрос должно быть получено: Helen, Ted.
б. all (X Y: X work (Z x y) and Y work (z X1 y) and X LESS Y)
В ответ на этот запрос должно быть получено: Helen, Tom.
в. all (X: X marriage (Y Z x) and X work (y z x)) Ответ - Betty. Действительно, Бетти - единственная, чей стаж совпадает с числом лет, прожитых в браке.
г. all (X: X birth (Y Z x) and X home (y z x))
д. all (X: X birth (Y Z x) and X home (y z x) and X work (X1 Y1 x))
Упражнение 3.7
Запрос, приведенный в упражнении, позволяет определить тех, кто работает не там, где живет, и, кроме того, тех, кто вообще не работает. Правильный запрос можно получить, поменяв порядок следования целевых утверждений
all (х у: х workplace у and not x horneplace у)
Упражнение 3.8
а) all (x у: х earns у and 8∅∅∅ LESS у)
б) all (х: х aged у and x earns z and 3∅ LESS y and z LESS 1∅∅∅∅)
в) is (x home-no у and к work-no у)
г) all (х: х years-in-job у and Tom years-in-job г and z LESS y)
д) all (x: x married у and joe married z and z LESS y)
Упражнение 3.9
а) all (x y: x age у and Ted age z and у LESS z)
б) считается, что в программе присутствует утверждение
date now (1 1 1975)
all (xy: x age у and 18 LESS у)
в) считается, что в программу включено утверждение
date now (31 12 2 000)
all (xy: x age у and у LESS 50)
г) all (xy: x age z and у age z and x LESS y)
д) all (xy: x age z and у age z and x LESS у and x born X and у born X)
е) проще всего уничтожить имеющуюся дату, ввести
date now (1 1 1950)
и сформировать запрос следующего вида:
all (x: х age у and у LESS ∅)
Упражнение 3.10
McDoo stock (3∅ 12 2∅∅ 555)
Fee stock (598 1∅∅ 35∅∅ 976∅)
Putlog stock (89∅∅ 95∅ 738∅ 6875)
X sand Y if
X stock (Y|Z)
X cement Y if
X stock (Z Y|x)
X blocks Y if
X stock (ZxY|y)
X bricks Y if
Xstock(ZxyY|z)
X newstock (Y Z x y) if
X stock (z X1 Y1 Z1) and
(X adjust (xl yl zl X2) is-told and
SUM (Y x 1 z)and
SUM(Z y 1 X1)and
SUM (x z 1 Y1)and
SUM (y X2 Z1)and
(X stock Y2) delete and
(X stock (Y Z x y)) add and /
Упражнение 3.11
а)
X age Y if
A upcount and ...
X age Y if
В upcount and ...
б) all (xy zX: x age у and A count z В count X)
в) данные о возрасте людей печатаются в первую очередь, поскольку они определяются в соответствии с первым правилом.
Упражнение 3.12
X in (Y X)
X in (Y Z) if
SUM (X 1 Z) and
Y LESS x and
X in (Y x)
Упражнение 3.13
Определение не содержит хвостовой рекурсии, поскольку последнее правило не является рекурсивным.
Упражнение 3.14
а) all (x у z: х pays (у on z))
б) можно использовать либо
all (х у z: pays (у on z) and not z EQ ( ))
либо
all (x у z: paus (y on z) and not x pays (y on ( )))