てきとうなメモ

本の感想とか技術メモとか

リスト内包表現

[ Expr || Qualifier1, ..., QualifierN]

で表現する.QualifierIはtrueかfalseを返す条件やX <- Listのような形式.

よくある例としてquicksort

-module(foo).
-export([qsort/1]).

qsort([]) -> [];
qsort([Pivot|Rest]) -> qsort([X || X <- Rest, X =< Pivot]) ++ [Pivot] ++ qsort([X || X <- Rest, X > Pivot]).
9> c(foo).
{ok,foo}
10> foo:qsort([1,3,2,5,4,1]).
[1,1,2,3,4,5]
11>