Prolog列表问题
[a,b,c,d] and
[[1,2,3,4],[5,6,7,8],[43,34,56,5],[23,32,2,2]]
我想让
[[a,1,2,3,4],[b,5,6,7,8],[c,43,34,56,5],[d,23,32,2,2]]
我使用 swi prolog 可以吗?
多谢。
[a,b,c,d] and
[[1,2,3,4],[5,6,7,8],[43,34,56,5],[23,32,2,2]]
I want to make
[[a,1,2,3,4],[b,5,6,7,8],[c,43,34,56,5],[d,23,32,2,2]]
I use swi prolog is it possible do it ?
Thanks a lot.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
SWI Prolog 可以使用两个短谓词来完成此操作:
以下是输入和输出的示例:
SWI Prolog can do this with two short predicates:
Here is example of input and output:
试试这个:
我仔细检查过,它有效。
“if”代表“先插入”。
try this:
I doubled checked, it works.
"if" stands for "insert first".
更新: 如何使用
将函数写在文件“a.pl”中,然后在 swi-prolog 中输入:
然后输入:
你会得到:
我有一种奇怪的感觉,我正在做你的作业。是吗?
UPDATE: How to use
Write the function in a file "a.pl", then in swi-prolog type:
then type:
You will get:
I have the strange feeling that I am doing your homework. Is it?
使用 meta-predicate
maplist/4
和 Prolog lambda 像这样:编辑
可以使用不同的 lambda 术语正如评论中指出的,在上面的
maplist/4
目标中。maplist(\H^T^[H|T]^true,As,Bss,Css)
maplist(\H^T^ =( [H|T]) ,As,Bss,Css)
Use meta-predicate
maplist/4
and Prolog lambdas like this:Edit
Different lambda terms can be used in above
maplist/4
goal, as pointed out in a comment.maplist(\H^T^[H|T]^true,As,Bss,Css)
maplist(\H^T^ =([H|T]) ,As,Bss,Css)