什么是||在Erlang意味着什么?

时间:2011-05-11 09:48:27

标签: erlang

我发现列表操作中有||||是什么意思?是否有关于||的任何示例?

lists:sum([A*B || {A, B} <- Foo]).

2 个答案:

答案 0 :(得分:27)

它在List comprehensions中使用。列表推导是一种创建列表的简短方法,无需使用乐趣,地图或过滤器。

来自Programming Erlang

如果我们有一个清单L:

L = [1,2,3,4,5].

我们希望将每个元素加倍,我们可以这样做:

lists:map(fun(X) -> 2*X end, L).

但是使用List comprehensions,我们可以做到:

[2*X || X <- L].

答案 1 :(得分:11)

命名法最有可能来自集合的数学概念,其中||意思是“这样”。

e.g。 copied from Wikipedia

F = {n2 - 4:n是整数;和0≤n≤19}

在这种表示法中,冒号(“:”)表示“这样”,描述可以解释为“F是n2 - 4形式的所有数字的集合,因此n是整数范围从0到19,包括在内。“有时使用垂直条(“|”)代替冒号。

将同样的事情应用于

lists:sum([A*B || {A, B} <- Foo]).

表示: - 生成A * B,使得A和B属于元组列表“Foo”