簡體   English   中英

在序言中編寫規則

[英]writing rules in prolog

我正在學習Prolog,並且想檢查一下自己:我認為這個問題非常基礎,但我才剛剛開始。

father(X,Y)
mother(X,Y)
male(X)
female(X)
parent(X,Y)
diff(X,Y)

為is_mother(X)編寫子句是否正確?

is_mother(X):- female(X), parent(X,Y).

謝謝

is_mother(X) :- female(X), parent(X,Y).

從技術上講,這是正確的,因為如果X是女性,則X是母親,而X是某人(Y)的父母。 在此定義中,Prolog將警告您Y是“單個”變量,因為您不使用它的值。 為避免該警告,您可以使用_或以_開頭的名稱來表示一個變量,該變量的值無關緊要,並且Prolog不會警告您未在使用該變量:

is_mother(X) :- female(X), parent(X,_).

術語female(X)parent(X,_)假定您具有predicate female(X)parent(X,Y)或您具有事實,例如(例如) female(sally). sally是“原子”(Prolog中的常量 ),和/或parent(sally, tom).

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM