我的问题:给定一个列表
L = [x1,...,xn]
编写一个convert(L,X)
转换L
为整数的 Prolog 程序
x1*10^0 + x2*10^1 + ... + xn*10^(n-1)
将结果存储在X
.
例如
?- convert( [1,2,3,4] , Res ).
Res = 4321.
我试图解决这个问题,但在尝试使用内置电源功能时出现语法错误。这是我到目前为止所拥有的:
convert([],Res) .
convert(L1,Res) :- conv( L1 , Res , C ) .
conv( [] , Res , C ) .
conv( [H|Ys] , Res , C ):-
C1 is C-1 ,
N is (H*(10**C)) ,
conv(Ys,Res2,C1) ,
Res is N + Res2 .
我收到此错误:
******* syntax error
>>> conv ( [ H | Ys ] , Res , C ) :- C1 is C - 1 , N is ( H * ( 10 <--- HERE? >>>
所以有人可以告诉我如何摆脱这个错误?
另外,有什么方法我在语法上会出错吗?
请帮我解决一下这个。谢谢你。