【发布时间】:2014-12-08 17:32:08
【问题描述】:
我需要编写一个谓词,它将接受一个数字列表和一个数字 X,然后从这个列表中的 X 个元素(从第一个元素开始)减去 1。 这可能看起来很简单,但我是这种语言的新手,我无法正确编写它。
这是我现在得到的:
sub([H|T], X):-NEWH is H-1, NEWX is X-1, sub(T, NEWX).
但是我怎样才能结束这个递归呢?像这样?
sub([H|T], 0).
当X大于列表元素个数时如何避免出错?
【问题讨论】:
标签: list recursion prolog predicate subtraction