0

例如,如果我的查询是

fill_list(3,X).

其中 N 是 3 而 X 是列表,我希望 X 像这些示例:

X = [1 , 1 , 1];
X = [1, 2 , 2];
X = [3 , 1 ,2];

没有限制,只是数字是从 1 到 N 的值

4

1 回答 1

3
fill_list(N, L) :- length(L, N), maplist(between(1,N), L).

这里的想法是制作指定长度的列表,然后指定所有成员都在所需的1-N范围内。我认为这是 Prolog 与问题规范匹配程度的一个很好的证明。

于 2019-03-15T14:03:53.397 回答