我是 Prolog 的新手,我正在努力了解列表。我正在努力解决的问题是:给定列表形式的数字(1:[x],3:[x,x,x]),实现'times'谓词/3。例如:次([x,x],[x,x,x],R)。R = [x, x, x, x, x, x]。
加号和后继谓词在哪里 2 以前的练习点。我知道我没有使用后继谓词,但后来它似乎没那么有用。
这是我迄今为止尝试过的
successor([], [x]).
successor([X|T], R) :-
append([X|T], [X], R).
plus(L1, L2, R) :- append(L1, L2, R).
times([], _, []).
times(_, [], []).
times([_], L, L).
times(L, [_], L).
times([_|T], L2, R) :- plus(L2, R, RN),
times(T, L2, RN).
输出是:R 是 []。