开发者

What does || mean in Erlang?

I found that there is a || in list manipulation. What does the || mean? Are there any examples about |开发者_JS百科|?

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


It is used in List comprehensions. List comprehensions is a shorter way to create lists without having to use funs, maps or filters.

From Programming Erlang:

If we have a list L:

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

And we want to double every element, we can do:

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

But with List comprehensions we can do:

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


Nomenclature most likely comes from mathematical notion of sets, where || means "such that".

e.g. copied from Wikipedia

F = {n2 − 4 : n is an integer; and 0 ≤ n ≤ 19}

In this notation, the colon (":") means "such that", and the description can be interpreted as "F is the set of all numbers of the form n2 − 4, such that n is a whole number in the range from 0 to 19 inclusive." Sometimes the vertical bar ("|") is used instead of the colon.

Applying same thing to

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

means:- generate A*B such that A and B belong to list of tuples "Foo"

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜