【发布时间】:2014-11-08 22:26:30
【问题描述】:
我正在学习 Erlang 假设我有两个列表
[{a,a,a,b,c},{d,d,a,a,b},{a,b,c,d,e}]
[{{a,a,a,a,a},10},{{a,a,a,a},6},{{a,a,a},4}]
在模式匹配之后,预期结果 {a,a,a,b,c} 因为它可以匹配 {{a,a,a},4}
我尝试了 lists:keysearch 和 lists:member,但无法获得预期结果
有什么建议吗?
谢谢
【问题讨论】:
-
{a,a,a,b,c}如何匹配{{a,a,a},4}?您能解释一下这两者有何相同之处吗? -
感谢您的回复。我想匹配 {a,a,a|_} {a,a,a,b,c}。这可能吗?
-
还是不确定。为什么
{a,a,a,b,c}不匹配{{a,a,a,a,a},10}?元组通常代表某种完整的连接数据;如果您尝试仅使用其中的一部分,也许尝试将其表示为列表?对我来说,如果我真的不明白你想要代表什么,那么很难想出通用算法?也许尝试描述匹配背后的逻辑,从哪里获得输入,以及从哪里使用输出。这可能对我有一点帮助。 -
不,这不是直接可能的。元组是一个数据块,因此您可以将整个元组相互匹配。所以要匹配
{a,b,c},你需要一个像{A,B,C}这样的模式。 -
现在我已经写了一个答案,我正在考虑编辑问题以改进和概括它,以便其他人可以找到它。匹配似乎是早期学习者的绊脚石,我讨厌这个主题难以调查。有任何异议或建议(任何人)?