我是 prolog 的新手,我发现很难以递归方式思考。假设我有两个列表:list1[0,0,0,1,1,0,1,1],list2[1,0,1,0,0,0,1,1]。当 list1 或 list 2 在相应位置有 1 时,我想返回一个有 1 的列表。
merge([H1|[]],[H2|[]],[H3|[]]):- H2 = 1, H3 = 1, H1 is 1.
merge([H1|T1],[H2|T2],[H3|T3]):- merge(T1,T2,T3), H2 = 1, H3 = 1, H1 is 1.
我知道我不能以上述形式扭动,但这与我现在所能做的一样接近序言形式。递归似乎太难了!