0
如何在列表解析中实施AND
警卫?用逗号分开看守似乎字:OR
:列表理解和警卫
1> rd(r, {a, b}).
r
2> L = [#r{a = 1, b =2}, #r{a = 1, b = 3}].
[#r{a = 1,b = 2},#r{a = 1, b = 3}]
3> [X || X <- L, X#r.a =/= 1, X#r.b =/= 2].
[]
非常感谢。
如何在列表解析中实施AND
警卫?用逗号分开看守似乎字:OR
:列表理解和警卫
1> rd(r, {a, b}).
r
2> L = [#r{a = 1, b =2}, #r{a = 1, b = 3}].
[#r{a = 1,b = 2},#r{a = 1, b = 3}]
3> [X || X <- L, X#r.a =/= 1, X#r.b =/= 2].
[]
非常感谢。
这绝对是一个AND。第一个元素不能通过两个测试;第二次失败X#r.a =/= 1
测试。
如果你想要或者,只需使用orelse
操作:
2> [X || X <- L, X#r.a =/= 1 orelse X#r.b =/= 2].
[#r{a = 1,b = 3}]
哦,上帝。我心何在?谢谢。我试图做的是包含如果双方都满意的要素。 –
@MartinDimitrov:我已经修改了我的答案以涵盖OR。 –
非常感谢您的帮助。 –