1

正如标题所说,我想编写一个执行此操作的程序。

一个例子是:

?- count(member(X,[1,2,3]), N). 

N = 3 

Yes

但不仅适用于内置成员,还适用于一些运算符,例如:

?- count(17 =:= 12 + 5, N). 

N = 1 

Yes

有人可以帮我开始吗?

4

2 回答 2

2

试试这个:

?- findall(., Goal, Ls), length(Ls, L).

例子:

?- findall(., member(X,[1,2,3]), Ls), length(Ls, L)。
L = 3 ,
... .
于 2015-09-21T12:02:32.690 回答
0

library( aggregate ) 已实现为您的问题提供解决方案,还有更多...

?- aggregate(count, X^member(X,[1,2,3]), N).
N = 3.

?- aggregate(count, 17 =:= 12 + 5, N).
N = 1.
于 2015-09-21T13:26:22.993 回答