Zackery Page
Zackery Page

Reputation: 23

How to access rule data in PROLOG

I have to determine whether two rectangles overlap or not, I can do this but I am struggling with figuring out how to grab my given data, and compare it to eachother to determine larger values.

%This is :what would be happening :
%separate(rectangle(0,10,10,0), rectangle(4,6,6,4))

separate(R1,R2) :-
    %I Have to figure out how to take the values from R1 and R2 and compare
    %them to one another.
.

Upvotes: 0

Views: 36

Answers (1)

User9213
User9213

Reputation: 1316

It is called "pattern matching".

separated(R1, R2) :-
    R1 = rectangle(A1, B1, C1, D1),
    R2 = rectangle(A2, B2, C2, D2),
    /* now just use your As and Bs */

and in many cases it is better to write straight away:

separated(rectangle(A1, B1, C1, D1), rectangle(A2, B2, C2, D2)) :-
    /* now just use your As and Bs */

Upvotes: 2

Related Questions