Prolog - 复制一个列表
问题描述:
我需要在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]
Output will be: L = [string1, string2, string3, string4]
.
我如何做到这一点?
代码:
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).