Erlang (programming language)/Tutorials/Lists: Difference between revisions
imported>Eric Evers |
imported>Eric Evers |
||
Line 31: | Line 31: | ||
==Mapfold(left)== | ==Mapfold(left)== | ||
mapfoldl(fun(X,Prod)->{X,X*Prod} end, 1, [1,2,3,4,5]). | lists:mapfoldl(fun(X,Prod)->{X,X*Prod} end, 1, [1,2,3,4,5]). | ||
{[1,2,3,4,5], 120} | {[1,2,3,4,5], 120} | ||
==Mapfold(right)== | ==Mapfold(right)== | ||
mapfoldr(fun(X,Prod)->{X,X*Prod} end, 1, [1,2,3,4,5]). | lists:mapfoldr(fun(X,Prod)->{X,X*Prod} end, 1, [1,2,3,4,5]). | ||
{[1,2,3,4,5], 120} | {[1,2,3,4,5], 120} | ||
==Nth== | ==Nth== | ||
nth(1,[a,b,c]). | lists:nth(1,[a,b,c]). | ||
a | a | ||
==Nthtail== | ==Nthtail== | ||
nthtail(2,[a,b,c,d]). | lists:nthtail(2,[a,b,c,d]). | ||
[c,d] | [c,d] | ||
Revision as of 14:16, 2 June 2008
The metadata subpage is missing. You can start it via filling in this form or by following the instructions that come up after clicking on the [show] link to the right. | |||
---|---|---|---|
|
Lists Module
Lists provides list functions. There is a non-standard parallel version available called plists.
Filter
1> F1 = fun(Item) -> length(Item) > 1 end. #Fun<erl_eval.6.58606484> 2> lists:filter(F1, [[1],[1,2],[1,2,3]]). [[1,2,3],[1,2]]
Flatten
lists:flatten([[1,2],[3,4]]). [1,2,3,4]
Fold(left)
3> lists:foldl( fun(X, Prod)-> X*Prod end, 1, [1,2,3,4,5]). 120
Fold(right)
3> lists:foldr( fun(X, Prod)-> X*Prod end, 1, [1,2,3,4,5]). 120
Map
6> Sqrt = fun(X) -> math:sqrt(X) end. #Fun<erl_eval.6.56006484>
7> lists:map(Sqrt,[1,2,3,4]). [1.00000,1.41421,1.73205,2.00000]
Mapfold(left)
lists:mapfoldl(fun(X,Prod)->{X,X*Prod} end, 1, [1,2,3,4,5]). {[1,2,3,4,5], 120}
Mapfold(right)
lists:mapfoldr(fun(X,Prod)->{X,X*Prod} end, 1, [1,2,3,4,5]). {[1,2,3,4,5], 120}
Nth
lists:nth(1,[a,b,c]). a
Nthtail
lists:nthtail(2,[a,b,c,d]). [c,d]
Sort
lists:sort([2,4,3,5]). [2,3,4,5]