Prolog 如何检查指定名称的所有谓词是否具有指定数量的参数?
假设我有许多用于保存数据的谓词。我已经手工输入了所有这些数据。现在我需要确保它们都有相同数量的参数 以下面的示例为例,我需要确保Prolog 如何检查指定名称的所有谓词是否具有指定数量的参数?,prolog,Prolog,假设我有许多用于保存数据的谓词。我已经手工输入了所有这些数据。现在我需要确保它们都有相同数量的参数 以下面的示例为例,我需要确保data始终有6个参数: % data(Id, Name, Age, Street, City, Phone). data(1, 'John', 12, "1 New Street", "Central City", "873289712"). data(2, 'Ali', 11, "122 Sesame Street", "Central City", "823283
data
始终有6个参数:
% data(Id, Name, Age, Street, City, Phone).
data(1, 'John', 12, "1 New Street", "Central City", "873289712").
data(2, 'Ali', 11, "122 Sesame Street", "Central City", "823283821").
% ...
如何编写一个谓词来检查所有数据谓词的参数数是否正确?如果某个条目的参数数量不正确,我想知道哪个条目不正确
例如:
CheckArguments(data, 6).
如果存在谓词data(2,'Farah'),则应给出false
。
,因为此条目在所需的6个参数中只有2个参数。此外,谓词应该有某种方式告诉我有问题的谓词是数据(2,'Farah')。
使用ISO Prolog标准谓词当前谓词/1
。例如,加载数据子句后:
| ?- current_predicate(data/Arity).
回溯到所有解决方案,以获得名称为data
的用户定义谓词的所有算术