List 序言:仅使用append关系从列表中获取第五个元素
我的问题是: 仅使用append关系(即append(L1、L2、L3)),制定查询以确定 下面(注意,尽管您的答案应该使用List 序言:仅使用append关系从列表中获取第五个元素,list,prolog,append,List,Prolog,Append,我的问题是: 仅使用append关系(即append(L1、L2、L3)),制定查询以确定 下面(注意,尽管您的答案应该使用L3=[1,2,3,4,5,6,7,8]但它应该适用于任何列表 由五个或五个以上元素组成,如L3) 到目前为止,我尝试过的查询有: append(Left, [X|Y], [1,2,3,4,5,6,7,8]). append([W|X], [Y|Z], [1,2,3,4,5,6,7,8]). 我不认为仅仅使用append关系就可以得到任何给定列表的第五个元素。非常感谢您
L3=[1,2,3,4,5,6,7,8]
但它应该适用于任何列表
由五个或五个以上元素组成,如L3
)
到目前为止,我尝试过的查询有:
append(Left, [X|Y], [1,2,3,4,5,6,7,8]).
append([W|X], [Y|Z], [1,2,3,4,5,6,7,8]).
我不认为仅仅使用append关系就可以得到任何给定列表的第五个元素。非常感谢您的帮助。您可以使用
append/3
获取第5个元素,但这并不像直接获取元素那么简单<代码>追加/3是一种过火的行为。所以我怀疑这只是一个使用append/3
的练习。这里有一个提示:至少由3个元素组成的列表可以写成[X,Y,Z | T]
。在Prolog提示符下尝试,例如,[1,2,3,4,5,6,7]=[X,Y,Z | T]
,看看您得到了什么。谢谢!我用类似的方法自己解决了这个问题。我的回答是:附加([|[|[|[|[|[|[|][Fifthement][1,2,3,4,5,6,7,8]),你不需要这些<代码>[A |[B |[C | T]]与[A,B,C | T]
相同。只需append([[u,[u,[u,[u,[u,[u,]fifthement],[1,2,3,4,5,6,7,8])
或append([u,[u,[u,[u,[u,[u,[u,[u,[u,[u,[u,[u,]fifthement],[1,2,3,4,5,6,7,8])
。但这太过分了。您只需执行fifth\u元素([\uu,\uu,\uu,fifthelent |,fifthelent)
并使用fifth\u元素([1,2,3,4,5,6,7,8],X)查询即可。