【发布时间】:2018-05-11 20:38:46
【问题描述】:
我在Prolog中定义如下:
listOfa([H|T]):- H = 'a', listOfa(T).
listOfa([]).
它做我想做的事。它检查列表中的所有项目是否都是某个元素,在本例中为字符 a,并相应地返回 true 或 false。但是,如果列表为空,它会返回 true,我不希望它这样做。除了,我不确定除了空列表之外还可以使用什么作为递归的基本情况。对于空列表,如何在不返回 true 的情况下保持递归?
【问题讨论】:
-
您的基本情况可能是
listOfa([a])而不是listOfa([])。 -
另外,把
H改成a,下一步就去掉统一,这比你需要做的还多。