《Erlang程序设计》第二章 入门

第二章 入门

第二章 入门

2.1 概览

  • 2.1.1 阶段1:茫然无绪
    • 安装Erlang
    • 启动Erlang Shell
    • Erlang Shell的基本使用
    • 在文本编辑器中编写Erlang程序
    • 在Erlang Shell中编译和运行程序
  • 2.1.2 阶段2:初窥门径
    • Erlang Shell的高级功能
    • Erlang的各种模块
    • Erlang的自动编译和执行
    • 运用OTP
    • 编写分布式程序
  • 2.1.3 阶段2.5:观其大略, 不求甚解
    第一次通读不需要每一章都学精之后再继续向下进行, 快速通览全貌再各个击破。
  • 2.1.4 阶段3:运用自如
    • 学习Mnesia(Erlang内置的数据库)
    • 学习与其它语言的互相调用
    • 利用OTP构建监控树和启动脚本
    • 运行和优化程序

2.2 Erlang安装

# Fedora
yum install -y erlang

# Mac OS X
brew install erlang

2.4 启动Shell

使用erl启动Erlang Shell
使用q().退出shell

2.5 整数运算

表达式需要以"."结尾

2.6 变量

变量以大写字母开头

  • 2.6.1 变量不变
    变量只能赋值一次, 此后的赋值操作将执行模式匹配, 遇到与首次赋值内容不同的操作将会提示模式匹配错误, 也就是说Erlang中的变量的值实际是不变的。
  • 2.6.2 模式匹配
    '='在其它语言中为赋值操作, 但在Erlang中为模式匹配操作
  • 2.6.3 单一赋值
    因为变量赋值一次后永不改变, 所以不用担心多个程序同时对可变内容(共享内存)进行修改的问题, 因此更有利于并发程序的编写。

2.7 浮点数

1> 5 div 3.
1
2> 5 rem 3.
2
3> 5 / 3.
1.6666666666666667

2.8 原子

原子用来表示不同的非数字常量值, 是一串以小写字母开头, 后跟数字、字母、下划线或邮件符号的字符, 也可以使用单引号引起来的字符, 原子的值即为其本身。

2.9 元组

元组是一定数量的项组成的单一的实体, 采用逗号分割若干个值括在花括号中的方式。
C语言定义坐标系中的点

struct point
{
    int x;
    int y;
} P;
P.x = 10; P.y = 45;

Erlang中不用类型声明

P = {10, 45}.
P = {point, 10, 45}.

获取元组中的字段值使用模式匹配的方式

# 注意变量需大写字母开头、单一赋值
1> {point, X, Y} = Point.
{point,10,45}
2> {point, X, Y} = P.
3> X.
10
4> Y.
45

# 使用'_'作为占位符, 只获取需要的变量
5> {point, _, A} = P.
{point,10,45}
6> A.
45

2.10 列表

列表用于存储数量可变的项, 采用逗号分割若干个值括在方括号中的方式, 列表中的元素可以是不同的类型。
列表的第一个元素称为列表的头, 其余称为列表的尾。
列表操作

# 定义列表
1> T = [{apples, 10}, {pears, 6}, {milk, 3}].
[{apples,10},{pears,6},{milk,3}]

# 添加内容
2> TAdd = [{oranges, 4} | T].
[{oranges,4},{apples,10},{pears,6},{milk,3}]

# 提取内容(使用竖线'|'区分头和尾)
3> [Thead | Ttail] = TAdd.
[{oranges,4},{apples,10},{pears,6},{milk,3}]
4> Thead.
{oranges,4}
5> Ttail.
[{apples,10},{pears,6},{milk,3}]

2.11 字符串

字符串是使用双引号括起来的一串字符, 本质是一个整数列表。

1> Name = "Hello".
"Hello"
2> [83, 117, 114, 112, 114, 105, 115, 101].
"Surprise"
3> N = "中文".
[228,184,173,230,150,135]

Date: 2013-05-26 11:51:46 CST

Author: matrix

Org version 7.8.11 with Emacs version 24

Validate XHTML 1.0
 
 
原文地址:https://www.cnblogs.com/scheme/p/3099823.html