Erlang编程学习笔记
需积分: 35 147 浏览量
更新于2024-09-14
收藏 34KB TXT 举报
"这是一份关于Erlang编程语言的学习笔记,主要涵盖了Erlang的基础概念、函数定义、模块操作、列表处理、字符串表示、I/O操作、模式匹配以及数据结构的使用。"
Erlang是一种面向并发的、函数式编程语言,常用于构建分布式系统。在这些笔记中,我们可以看到以下几个关键知识点:
1. **模块(Module)**:Erlang程序由模块组成,模块中包含函数定义。`-module(tut).` 定义了一个名为`tut`的模块。
2. **函数(Function)**:函数通过`function_name/arity`定义,其中`arity`是函数参数的数量。例如,`double/1`表示接受一个参数的`double`函数。`-export([double/1, fact/1]).` 表示导出`tut`模块中的`double/1`和`fact/1`函数供外部调用。
3. **函数定义**:如`double(X) -> 2*X.` 是一个简单的函数,它接受一个参数`X`并返回其两倍。`fact`函数展示了递归定义,计算一个数的阶乘。
4. **列表操作**:Erlang中常用 `[ ]` 表示列表,如 `[One, Two | Rest] = [1, 2, 3, 4, 5, 6]` 进行了模式匹配,将列表拆分为`One`、`Two`和`Rest`。
5. **长度获取**:`get_length/1` 函数展示了如何递归地计算列表长度。`get_length([]) -> 0;` 用于空列表的情况,`get_length([First|Rest]) -> 1 + get_length(Rest).` 处理非空列表。
6. **字符串**:在Erlang中,字符串实际上是字符列表,如 `[97, 98, 99]` 对应于字符串 "abc"。
7. **I/O操作**:`io:format` 函数用于输出格式化的文本,例如 `io:format("mynameis~w,myageis~w~n",[biao,20])` 会输出 "mynameis biao,myageis 20"。
8. **除法和取余**:`divrem` 是Erlang中的除法和取余运算,如 `10 div 3` 返回整数除法结果,`10 rem 3` 返回余数。
9. **字符与ASCII码**:Erlang中的单引号 `'a'` 代表ASCII码对应的字符,而双引号 `"a"` 表示字符列表。
10. **记录(Record)**:Erlang中的记录类似于结构化数据,如 `F={first,guo}` 和 `L={last,biao}` 创建了两个记录,`Name={person,F,L}` 创建了一个包含两个记录的记录。
11. **模式匹配**:在变量赋值和解构过程中,Erlang支持模式匹配。例如,`{_, {_, N1}, {_, N2}} = Name.` 将`Name`解构为三个部分。
12. **列表访问和遍历**:列表可以通过索引访问,例如 `Head = [Head|_]` 用于获取列表的第一个元素。列表也可以通过迭代处理,如 `lists:map/2` 或 `lists:filter/2`。
13. **列表操作**:`[Buy1|Others] = ThingstoBuy.` 用于提取列表的第一个元素`Buy1`和剩余部分`Others`。
这份笔记为学习Erlang提供了很好的起点,涵盖了基本语法、数据结构和控制流等核心概念,适合初学者回顾和巩固Erlang知识。
2019-07-09 上传
2016-07-20 上传
2012-04-04 上传
2019-03-18 上传
2021-06-05 上传
2019-04-19 上传
2021-07-06 上传
shooga
- 粉丝: 2
- 资源: 18
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查