小编Sar*_*rah的帖子

Prolog获得列表的频率

从事prolog任务.

我有一个结构 cnt(letter,number).

我需要返回一个列表,cnt其中每个cnt字符的出现次数(假设每个项目已经被排序以将相同的项目一个接一个地放置).

到目前为止我有这个:

cnt(letter,number).

freq([],[]).

freq([A|L],Y) :- grab(A,Init,_), freq(L,[Init|Y]).
Run Code Online (Sandbox Code Playgroud)

抓取工作正确获取项目列表并返回第一个重复项列表 Init

例如,grab([a,a,a,b,c], Init, Rest).将返回Init = [a,a,a].

假设我有一个列表,[a,a,a,b,b,b,c,c]我需要freq返回Y = [cnt(a,3), cnt(b,3), cnt(c,2)].

我认为到目前为止我所接近的是正确的,除了它返回false.

反正有没有办法看看它到底做了什么?或者任何人都可以看到任何明显的问

prolog

4
推荐指数
1
解决办法
951
查看次数

标签 统计

prolog ×1