Prolog - 复制一个列表 [英] Prolog - copy a piece of list

查看:10
本文介绍了Prolog - 复制一个列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在序言中复制列表.

I need to duplicate list in prolog.

我有清单:

L = [a(string1,value1),a(string2,value2),a(string3,value3),a(string4,value4)].

输出将是:L = [string1, string2, string3, string4].

我该怎么做?

我可以通过代码复制整个列表:

I can copy whole list by code:

copy([],[]).
copy([H|L1],[H|L2]) :- copy(L1,L2).

我尝试过类似的方法:

copy2([],[]).
copy2([H|L1],[K|L2]) :- member(f(K,_),H), copy2(L1,L2). 

但它不能正常工作.

但我只需要原始列表中的字符串.有人可以帮忙吗?

But I need only strings from my original list. Can anyone help?

推荐答案

模式匹配用于分解参数:你可以这样做

pattern matching is used to decompose arguments: you can do

copy([],[]).
copy([a(H,_)|L1],[H|L2]) :- copy(L1,L2).

这篇关于Prolog - 复制一个列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆