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