countif(+List, ?Atom, ?Count)
计算List中原子Atom的个数Count。
例:
?- countif([atm, 123, atm, aabbcc], atm, Num).
传回 Num = 2.
?- countif([atm, 123, atm, aabbcc], atmzzz, Num).
传回 Num = 0.
?- countif([atm, 123, atm, aabbcc], String, 1).
传回
String = 123 ;
String = aabbcc ;
false.
?- countif([atm, 123, atm, aabbcc], String, Num).
传回
Str = 123,
Num = 1 ;
Str = aabbcc,
Num = 1 ;
Str = atm,
Num = 2.
适用的Prolog版本:SWI-Prolog
计算List中原子Atom的个数Count。
- 代码:
countif(List,Atom,Count):- (var(Count) -> ! ; true), bagof(I,nth1(I,List,Atom),R), length(R,Count).
countif(List,Atom,Count):- Count = 0.
例:
?- countif([atm, 123, atm, aabbcc], atm, Num).
传回 Num = 2.
?- countif([atm, 123, atm, aabbcc], atmzzz, Num).
传回 Num = 0.
?- countif([atm, 123, atm, aabbcc], String, 1).
传回
String = 123 ;
String = aabbcc ;
false.
?- countif([atm, 123, atm, aabbcc], String, Num).
传回
Str = 123,
Num = 1 ;
Str = aabbcc,
Num = 1 ;
Str = atm,
Num = 2.
适用的Prolog版本:SWI-Prolog