Erlang常用函数与操作整理
需积分: 2 152 浏览量
更新于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代码。
185 浏览量
2023-06-08 上传
2023-07-28 上传
2023-05-18 上传
2023-08-02 上传
2023-07-30 上传
2023-06-27 上传
2023-08-23 上传
闲人一小枚
- 粉丝: 75
- 资源: 14
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全