从事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 ×1