计算prolog中深层列表中的原子元素

时间:2013-01-16 13:24:28

标签: prolog

elem([],0).

elem([H|T],R):-atomic(H),elem(T,R1),R1 is R+1.

elem([H|T],R):-elem(H,R1),elem(T,R2),R is R1+R2.

这是我的代码,在我在这个网站上搜索我的问题的答案后,我找不到一个好的。错误是:?- elem([1,[2],3,4],R)

ERROR: is/2: Arguments are not sufficiently instantiated.

但它应该 R = 3

1 个答案:

答案 0 :(得分:1)

在第二行,您应该

R is R1 + 1

而不是

R1 is R + 1.