43

something is a person if it is either Adam or Eve, or if it has a mother. We can express this in a single rule as follows:

person(X) :- (X=adam; X=eve; mother(X, Y)).

you are viewing a single comment's thread
view the rest of the comments
[-] sushibowl@feddit.nl 7 points 1 week ago

Can someone explain where the Y comes from? Is this something like, there exists a mother relation between this X and some Y?

[-] sebastiancarlos@lemmy.sdf.org 7 points 1 week ago

mother can be used in several ways. If both X and Y variables are uninitialized, then it looks for all mother relationships. If one of them is initialized, it looks for matching relationships. If both are initialized, it returns true if such a relationship exists.

[-] Ephera@lemmy.ml 5 points 1 week ago

Yeah, the Y is a wildcard in that position. Typically, you would write it as an underscore, primarily because most Prolog compilers will warn about unknown variables, since those could also just be a typo of an existing variable.

this post was submitted on 03 Jan 2025
43 points (92.2% liked)

Programmer Humor

32707 readers
163 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS