Erlang 从零 · 第 01 课(展开目录)
01 · 先打开 erl02 · 先认常见 term03 · 分清两种文字04 · 变量只接一次05 · 拆开一列,再筛一次06 · 把文字安全变成整数07 · 用 case 选一条路08 · 让函数继续走09 · 把代码放进模块10 · 条件必须说真话11 · 一层一层取数据12 · 文字先说清编码13 · 让函数子句排好队14 · 带着累加器往前走15 · 先看值,再选路16 · 给模块立规矩17 · 让 rebar3 管项目18 · 让结果有固定形状19 · 把磁盘当成会失败的邻居20 · 把函数交给 list21 · record 留在院里22 · 先写模块之间的约定23 · 把 term 形状写出来24 · 小测试与整段路25 · 把应用磨成命令26 · 先把小项目圈住27 · 把真实文件洗干净28 · 公开入口越少越稳29 · 把约定留在源码旁30 · 打包,也留下线索31 · 按最初任务交卷
ERLANG · 试跑 · LESSON 0115 分钟

先打开 erl

在 Erlang shell 里运行表达式,记住句末的点。

01 · 先看完整例子

复制到 erl,逐行回车

注意每段可运行代码最后都有句点。

Erlang
%% 加法表达式返回一个数字
2 + 3.

%% 调用 string 模块,把文字变成大写
string:uppercase("cat").

%% 调用 io 模块,把文字打印出来
io:format("hello, BEAM~n", []).
先对照结果
  • 2 + 3. 返回 5。
  • string:uppercase("cat"). 返回 "CAT"。
  • io:format(...) 打印一行文字,再显示 ok;先把它当作“做完了”标签。
02 · 回头拆代码

从第一行往下读

  1. 2 + 3. 中,最后的点不是小数点,它结束这条输入。
  2. string:uppercase("cat"). 调用 string 模块中的 uppercase 函数。
  3. ~n 表示换行;空 list [] 表示这次没有额外值要填进格式字符串。
03 · 认清新符号

符号不是暗号

erl

在终端输入它,打开 Erlang shell。

1>

shell 提示符。只输入它后面的代码。

.

告诉 shell:这句写完了,可以运行。

04 · 代码里的概念

把名字和意思对上

01

erl

启动 Erlang shell 的终端命令。

02

表达式

运行后会得到一个值的代码,如 2 + 3。

03

句点

Erlang 中一条完整 shell 输入或函数定义用 . 结束。

05 · 再说清楚

这些写法为什么有用

erl 会打开 Erlang shell。它和 IEx 一样,适合马上试一小段代码。

Erlang shell 要等到句点 . 才知道一句代码结束。忘记句点时,它会继续等,而不是立即运行。

shell 前面的 1>、2> 是提示符和输入序号,不是你要复制的代码。

06 · 自己改一次

合上答案,动手

让 shell 算出 8 乘 7,再把 beam 变成大写。

练习起点
%% 补上运算符,也别忘了句点
8 ? 7.

%% 补上函数名
string:____("beam").

目标结果: 先看到 56,再看到 "BEAM"。

卡住了,再看提示

乘法用 *。示例中的函数名是 uppercase。

运行过以后,再看一种答案
一种答案
%% 星号表示乘法
8 * 7.

%% 每次输入都以句点结束
string:uppercase("beam").
想一想:输入 `2 + 3` 后 shell 还在等待,最可能少了什么?

少了句末的点。补上 . 再按回车。

带走

记住三句

  1. 1

    erl 打开 Erlang shell。

  2. 2

    shell 适合试很短的 Erlang 表达式。

  3. 3

    完整输入以句点结束。

本课结束代码也跑过一次,就把这一课收好。