【发布时间】:2010-05-26 22:08:43
【问题描述】:
到目前为止我能想到的最好的东西就是这个功能:
numberFromList([X], X) :- digit(X), !. numberFromList(List, N) :- member(X, List), delete(List, X, LX), numberFromList(LX, NX), N is NX * 10 + X.
其中digit/1 是一个验证原子是否为十进制数字的函数。
numberFromList(List, N) 查找所有可以用来自List 的all 数字组成的数字。
例如。 [2, 3] -> 23, 32。
但我想得到这个结果:[2, 3] -> 2, 3, 23, 32
我花了很多时间思考这个问题,我怀疑你可能会在某些时候使用像 append(L, _, List) 这样的东西来获取长度较短的列表。
我将不胜感激。
【问题讨论】:
-
你想要怎样的数字?在一个列表中还是在回溯时一次一个?
标签: list numbers prolog digits