Prolog计算列表中的数字

时间:2017-12-11 00:02:37

标签: prolog

我想知道你是否可以帮我解决这个问题。我需要创建一个计算列表中数字位数的脚本。这是一个例子:

amount([234,12,4356],L) 

应该导致:

 L=[c(234,3),c(12,2),c(4356,4)]

1 个答案:

答案 0 :(得分:-1)

您需要获取原子的长度,并将其与原始变量的头部一起使用:

 count(List,X):-
    counter(List,X).

counter([],[]).
counter([H|T],[(H,Z)|X]):-
    atom_length(H,Z),
    counter(T,X).

所以查询:

   ?- count([234,12,4356],L).
    L = [(234, 3),  (12, 2),  (4356, 4)].