Erlang常用函数与操作整理
需积分: 2 124 浏览量
更新于2024-09-10
收藏 13KB TXT 举报
"Erlang日常使用技巧集合"
在Erlang编程中,有一些常用且实用的操作函数,这对于初学者和日常开发来说非常有价值。这里列举了一些关键的Erlang列表处理函数以及字符串和系统相关的BIF(内置函数)。
1. `lists:seq(Start, End[, Step])`:
这个函数用于生成一个从`Start`到`End`的整数序列,可选参数`Step`指定步进值。例如:
- `lists:seq(0, 9)` 返回 `[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`
- `lists:seq(0, 9, 3)` 返回 `[0, 3, 6, 9]`
2. `lists:map(Function, List)`:
它将`List`中的每个元素应用`Function`函数并返回新列表。例如:
- `lists:map(fun(X) -> X + 1 end, [1, 2, 3])` 返回 `[2, 3, 4]`
3. `lists:filter(Predicate, List)`:
这个函数根据`Predicate`函数的结果过滤`List`,返回满足条件的元素。例如:
- `lists:filter(fun(X) -> X > 5 end, [1, 6, 3, 8, 2])` 返回 `[6, 8]`
4. `lists:member(Element, List)`:
检查`Element`是否在`List`中,如果在则返回`true`,否则返回`false`。例如:
- `lists:member(2, [1, 2, 3])` 返回 `true`
5. `lists:max(List)` 和 `lists:min(List)`:
分别返回`List`中的最大值和最小值。例如:
- `lists:max([3, 1, 5, 2, 7])` 返回 `7`
- `lists:min([3, 1, 5, 2, 7])` 返回 `1`
6. `lists:sum(List)`:
计算`List`中所有元素的和。例如:
- `lists:sum([1, 2, 3, 4, 5])` 返回 `15`
7. `lists:sort(List)`:
对`List`进行升序排序。例如:
- `lists:sort([3, 1, 5, 2, 7])` 返回 `[1, 2, 3, 5, 7]`
8. `lists:sublist(List, Start, Length)`:
从`List`中获取从`Start`位置开始长度为`Length`的子列表。例如:
- `lists:sublist([a, b, c, d, f], 3)` 返回 `[c, d, f]`
- `lists:sublist([a, b, c, d, f], 3, 2)` 返回 `[c, d]`
9. `lists:concat(List)`:
将`List`中的所有元素连接成一个单一的字符串。例如:
- `lists:concat(["Hello", " ", "World"])` 返回 `"Hello World"`
10. `lists:keyfind(Key, Pos, TupleList)`:
在`TupleList`中查找键`Key`位于`Pos`位置的元组,并返回整个匹配的元组。例如:
- `lists:keyfind(2, 1, [{1, 'a'}, {2, 'b'}, {3, 'c'}])` 返回 `{2, 'b'}`
11. `lists:subtract(List1, List2)`:
从`List1`中移除`List2`中的元素,返回新的列表。例如:
- `lists:subtract([1, 2, 3, 2, 1], [2, 1])` 返回 `[3]`
此外,还有一些Erlang的内置函数(BIF):
12. `string:tokens(String, Delimiters)`:
使用`Delimiters`分隔符将`String`拆分成一个子串列表。例如:
- `string:tokens("a122b47ab44", "ab")` 返回 `["122", "47", "44"]`
13. `string:len(String)`:
计算字符串`String`的长度。例如:
- `string:len("Hello")` 返回 `5`
14. `tuple_size(Tuple)`:
获取元组`Tuple`的大小(元素数量)。例如:
- `tuple_size({1, 2, 3, 4, 5, 6})` 返回 `6`
15. `apply(Module, Function, Args)`:
在`Module`模块中调用`Function`函数,传入`Args`参数。例如:
- `apply(server5, start, [])` 调用 `server5:start([])`,假设`server5`模块已经定义了`start/0`函数
16. `erlang:get_stacktrace()`:
获取当前进程的堆栈跟踪信息,用于调试。
17. `statistics(runtime)` 和 `statistics(wall_clock)`:
分别返回程序运行时间(不包括垃圾回收时间)和实际经过的墙钟时间。
这些Erlang函数和BIF提供了强大的工具来处理列表、字符串和其他数据结构,是Erlang日常开发中不可或缺的一部分。通过熟练掌握它们,你可以更高效地编写Erlang代码。
2018-12-20 上传
2021-05-10 上传
2021-06-24 上传
2013-12-18 上传
2019-08-10 上传
2021-07-19 上传
闲人一小枚
- 粉丝: 86
- 资源: 13
最新资源
- DLinkMaP:果蝇连锁图谱管线
- AWS-EKS-平台
- IonoTomo:使用射线追踪和射电观测模拟进行射电天文学的电离层层析成像
- Favicon Fixer for Gmail-crx插件
- valve.rar_OpenGL_Visual_C++_
- RMariaDB:到MariaDB的R接口
- YouPay
- rticles:R Markdown的LaTeX Journal文章模板
- Watcher.rar_对话框与窗口_Visual_C++_
- Startuphack New Tab Page Extension-crx插件
- matlab实现bsc代码-LDPC:简单的Matlab函数,使用对数和积方法实现LDPC软解码算法
- armeypa
- linux_study
- PyPI 官网下载 | tencentcloud-sdk-python-ecc-3.0.524.tar.gz
- reviewing-a-pull-request
- RSocrata:提供与Socrata开放数据门户http://dev.socrata.com的轻松交互。 用户可以提供“ Socrata”数据集资源URL,或“ Socrata”开放数据API(SoDA)Web查询,或“ Socrata”“人性化” URL,返回R数据帧。 将日期转换为“ POSIX”格式。 通过“ Socrata”管理节流