1
vecLine2BitLineAux([C | Cs],[P | Ps], N, LastP, LastC, BitLine) :-
/* print(P), print(' '), print(C), print(' '), print(N),
print(' '), print(LastP), print(' '), print(LastC),
print(' '), print(BitLine), print('\n'), */
vecLine2BitLineAux(Cs,Ps, N, P, C, Res),
SpCnt is P-(LastP+LastC),
/* print(SpCnt),print('\n'), */
fill_char(SpCnt, ' ', Spaces),
fill_char(LastC, '*', Stars),
append(Stars, Spaces, Tmp),
append(Tmp, Res, BitLine).
vecLine2BitLine(CList, [P | Ps], N, BitLine) :-
P1 is P-1,
vecLine2BitLineAux(Clist, [P | Ps], N, P1, 0, BitLine).
主谓应该调用辅助谓词与2个额外的参数,这些参数(P-1)和0,但一些为什么它给出了错误:的Prolog - 一个AUX谓词在主谓词
Exception: (11) _L191 is 9- (5+_G559) ?
但是,如果我只是下面的例子中运行辅助谓词,它的伟大工程:
vecLine2BitLineAux([1,2,1],[2,5,9],12, 1,0,BitLine).
任何人知道为什么,我该如何解决?
'is/2'是一个表达式求值器,因此要求右边表达式中的* all *变量绑定到数字。 – lurker