diff options
author | Fredrik Gustafsson <[email protected]> | 2013-05-02 11:09:24 +0200 |
---|---|---|
committer | Fredrik Gustafsson <[email protected]> | 2013-05-02 11:09:24 +0200 |
commit | f7c5df146f027d0dbcbcc0e41f39343b74cedfd2 (patch) | |
tree | b1fc855d5767b32ae50c5a592bb5993d4c63f0e6 /lib/stdlib/doc | |
parent | cd14a151051567cc19dfa3677799612366060801 (diff) | |
parent | 3ac04f901ecfb3fed128759964ccc54fa4ee7b2a (diff) | |
download | otp-f7c5df146f027d0dbcbcc0e41f39343b74cedfd2.tar.gz otp-f7c5df146f027d0dbcbcc0e41f39343b74cedfd2.tar.bz2 otp-f7c5df146f027d0dbcbcc0e41f39343b74cedfd2.zip |
Merge branch 'nox/lists-filtermap/OTP-11078' into maint
* nox/lists-filtermap/OTP-11078:
Rename and document lists:zf/2 as lists:filtermap/2
Diffstat (limited to 'lib/stdlib/doc')
-rw-r--r-- | lib/stdlib/doc/src/lists.xml | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/stdlib/doc/src/lists.xml b/lib/stdlib/doc/src/lists.xml index b6c0fa4e05..1aff78f4fc 100644 --- a/lib/stdlib/doc/src/lists.xml +++ b/lib/stdlib/doc/src/lists.xml @@ -152,6 +152,31 @@ </desc> </func> <func> + <name name="filtermap" arity="2"/> + <fsummary>Filter and map elements which satisfy a function</fsummary> + <desc> + <p>Calls <c><anno>Fun</anno>(<anno>Elem</anno>)</c> on successive elements <c>Elem</c> + of <c><anno>List1</anno></c>. <c><anno>Fun</anno>/2</c> must return either a boolean + or a tuple <c>{true, <anno>Value</anno>}</c>. The function returns the list of elements + for which <c><anno>Fun</anno></c> returns a new value, where a value of <c>true</c> + is synonymous with <c>{true, <anno>Elem</anno>}</c>.</p> + <p>That is, <c>filtermap</c> behaves as if it had been defined as follows:</p> + <code type="none"> +filtermap(Fun, List1) -> + lists:foldr(fun(Elem, Acc) -> + case Fun(Elem) of + false -> Acc; + true -> [Elem|Acc]; + {true,Value} -> [Value|Acc] + end, + end, [], List1).</code> + <p>Example:</p> + <pre> +> <input>lists:filtermap(fun(X) -> case X rem 2 of 0 -> {true, X div 2}; _ -> false end end, [1,2,3,4,5]).</input> +[1,2]</pre> + </desc> + </func> + <func> <name name="flatlength" arity="1"/> <fsummary>Length of flattened deep list</fsummary> <desc> |