【发布时间】:2020-09-29 22:20:21
【问题描述】:
我需要编写一个谓词 bapos(L1,L2,E1,E2),当 L1 和 L2 是列表时为真,这样 E1 在 L1 中的位置是 E2 在 L2 中的位置之前或之后的一个位置。
我的解决方案:
bapos([_|_],[L2|_], _, L2).
bapos([_|L1],[_|L2],E1,E2) :- bapos(L1,L2,E1,E2). ```
this works but not as expected.
expected output.
bapos([1,2,3], L2, 2, b).
L2 = [b|_G1869] ;
L2 = [_G1868, _G1871, b|_G1875] ;
false.
My output:
bapos([1,2,3],L2,2,b).
L2 = [b|_34474] ;
L2 = [_35132, _35138|_35140] ;
L2 = [_35132, b|_35800] ;
L2 = [_35132, _36458, b|_36466] ;
false.
【问题讨论】: