我怎样才能让我的Prolog程序输出序言乘以一个列表的元素
1*a*b*c
如果我输入simplify([1,a,b,c],S).
? 目前结果将是
1 *(a *(b * c))。
simplify(S,S1):-
s(S,S1).
s([H|T],C) :- T\=[],s(H,SA), s(T,SB), s0(SA*SB,C).
s([H|T],H) :- T==[].
s(A,A).
s0(A*B,S):-
S = A*B.
感谢您的帮助。
不幸的是输出不需要是一个“复合” –