我想将数字列表合并为数字。
[1,2,3] -> 123
我的谓词:
merge([X], X).
merge([H|T], X) :-
merge(T, X1),
X is X1 + H * 10.
但现在我得到:
[1,2,3] -> 33
另一种方法是将到目前为止已处理的内容乘以十,但您需要一个累加器值。
merge(Digits, Result) :- merge(Digits, 0, Result).
merge([X|Xs], Prefix, Result) :-
Prefix1 is Prefix * 10 + X,
merge(Xs, Prefix1, Result).
merge([], Result, Result).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)