在我的程序中,我有一个谓词number_to_unique_bits_list
,它接收一个数字和一个布尔列表,并返回一个布尔公式,当它的值是数字时满足。
number_to_unique_bits_list( 0, [], [] ).
number_to_unique_bits_list( IntegerNumber, [ Bit | RestBits ],[ ResultBit | RestResultBits ] ) :-
ModRes is mod( IntegerNumber, 2 ),
ModRes == 1,
ResultBit = Bit,
Divided is div( IntegerNumber, 2),
number_to_unique_bits_list( Divided, RestBits, RestResultBits ).
number_to_unique_bits_list( IntegerNumber, [ Bit | RestBits ],[ ResultBit | RestResultBits ] ) :-
ModRes is mod( IntegerNumber, 2 ),
ModRes == 0,
not_on_sat(Bit, ResultBit),
Divided is div( IntegerNumber, 2),
number_to_unique_bits_list( Divided, RestBits, RestResultBits ).
出现以下错误时出现问题:
错误:是/ 2:算术:`div / 2'不是一个功能
但是检查here,我可以看到div/2
是一个功能!我不明白这个问题是什么?