1
1からNの要素を生成し、リストに保存してそれらの要素を追加するプログラムを作りたいと思います。 Nはリストの長さに依存します。私が尋ねるとき例えば、「(L、A)を追加」、それはそれはVARと述語の間で動作するはずです私にリストからの要素の追加
"L=[], A=0",
"L=[1], A=1",
"L=[1,1], A=2",
"L=[1,2], A=3",
"L=[2,1], A=3",
"L=[2,2], A=4",
"L=[1,1,1], A=3" and so on.
を与える必要があります。これまでのコードは
add(L,A) :-
var(L),
length(L,N),
between(1,N,E),
add(E,AZ),
A is E + AZ.
ありがとうございます!この答えはいくつかの問題を持っていることを
:- use_module(library(clpfd)).
add(L, A) :-
length(L, Length),
L ins 1..Length,
sum(L, #=, A),
label(L).
注: