日志中的对象数



我有协议:

:- protocol(person).
:- public([name/1,
        age/1]).
:- end_protocol.

例如,我使用 create_object/4 制作了未知数量的对象,如何获得其中的数量?通过current_object/1获得他们的名字不是问题,但我需要一个整数!

假设只有对象(即没有类别)实现person协议,您可以使用

例如
count(N) :-
    findall(1, implements_protocol(_,person), L),
    list::length(L, N).

如果您有对象的层次结构,请将对implements_protocol /2的调用替换为 conforms_to_protocol/2。还可以通过将协议作为参数传递来概括count/1谓词。

相关内容

  • 没有找到相关文章

最新更新