【发布时间】:2018-10-30 02:10:20
【问题描述】:
我要解决的问题是:“查找列表 L 的所有元素,然后是值为 X 的元素”。
我试图使用列表理解来做到这一点。但是,我现在怀疑这是可能的。我了解在更简单的场景中应该如何工作,比如这个
[some_transformation(X) || X <- [...], some_conditional(X)].
在 Xs 上有一个过滤器,它来自一个 Xs 的生成器,并且对那些通过的过滤器进行了转换。
我的希望很渺茫,因为 Erlang 的模式匹配能力允许这样的事情:
[H1|[H2|T]] = [1,2,3,4].
,绑定 H1 和 H2。我可以在列表推导中使用一些模式来达到预期的结果吗?
当我天真地尝试这个时,它显然不起作用:
78> [X||[H1|[H2|_]]=X <- [1,2,3,4]].
[]
也许我应该停止懒惰并希望列表理解和模式匹配的魔力为我完成所有工作? =P
【问题讨论】:
标签: erlang pattern-matching list-comprehension