Erlang丨技巧1

前言

分享一下学到的 Erlang 技巧。

Erlang Shell

Erlang Shell 中有很多实用的内置函数,直接输入 help() 即可看到所有的函数名以及说明。
help命令
其中,rp(Term) 这个命令可以显示参数 Term 的完整数据,可以解决 Shell 中长数据显示为省略号的问题。
rp命令
对于 Erlang Shell 清屏的命令 io:format(os:cmd(clear)),这个好像真的不起作用...
windows10
执行一句 catch_exception(true) 可以解决 Erlang Shell 遇到异常重启的问题。
ErlangShell 重建了

原子的个数

原子是不会垃圾回收的,当原子个数达到最大时(默认为 1048576 ),节点会直接 crash,在新版 OTP 中可以直接使用 erlang:system_info(atom_limit)erlang:system_info(atom_count) 得到最大值和当前值。

操作符的顺序

列表的操作符 ++-- 都是反直觉的右联操作符。
列表操作--

列表解析

列表解析是一种无须使用 fun 或 map 或 filter 来创建列表的表达式,它的格式通常如下:

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

Expr 是一个任意表达式,每个 Qualifier 可以是生成器或者是筛选器,对于 Qualifier 的数量没有最多限制,最少有一个。列表解析返回一个列表,其中的元素是当 所有 过滤器都为 true 时计算 Expr 的结果。
快速排序的简单实现:

sort([Pivot|T]) ->
    sort([ X || X <- T, X < Pivot]) ++
    [Pivot] ++
    sort([ X || X <- T, X >= Pivot]);
sort([]) -> [].

参考

  1. How to clear the Erlang shell.
  2. Erlang Operator Precedence
  3. Erlang List Comprehensions
打赏
评论区
头像
文章目录