Erlang笔记(09) - 列表解析

来源:互联网 发布:mac上的开发软件 编辑:程序博客网 时间:2024/04/29 14:02

1. 列表解析格式

  • [F(X) || X <- L ]
    • 表示:由 F(X) 组成的列表,其中 X 是取值来源于列表 L (F 是某个功能函数)
  • [X || Qualifier1, Qualifier2, ...]
    • X可以是任意一个表达式,每个限定词 (Qualifier) 可以使一个生成器或者是一个过滤器
      • 生成器通常写为 Pattern <- ListExpr, 其中 ListEpr 必须是一个队列表项求职的表达式
      • 过滤器可以使一个谓词 (返回true或者false的函数),也可以是一个布尔表达式

2. 举例

  • L = [1, 2, 3, 4].
    • [2*X | X <-L ].  % 列表 L 中每个元素 X 乘以 2 得到的列表
  • [{Name, 2*Number} || {Name, Number} <- Buy ].
    • 对列表 Buy 中每个元祖中 Number 的值 乘以2
  • 快速排序
    • sort([]) -> [];    
    • sort([Pivot|T]) -> sort([X || X <-T, X<Pivot]) ++ [Pivot] ++ sort([X || X <-T, X>=Pivot]).
0 0
原创粉丝点击