Erlang入门

一,启动&退出Erlang Shell

$ erl // 启动

$ halt(). // 退出

二,编译和运行

示例代码:

-module(hello).
-export([start/0]).

start() ->
    io:format("Hello worl~n").

1,在Erlang shell里

$ erl

1> c(hello).

2> hello:start().

2,在系统Shell里

$ erlc hello.erl

$ erl -noshell -s hello start -s init stop

%% -s init stop 表示最后执行 init:stop() 函数。

三,变量/常量(原子)/元组/列表/字符串

1,变量

%%code begin%%

1> Var=1. %% 变量赋值
1
2> Var. %% 打印变量
1

%%code end%%

Erlang中的变量以大写字母开,并且只能一只赋值(模式匹配)。

2,常量(原子)

原子以小写字母开头,后接字母/数字/下划线/at符号(@)

3,元组(类似C里面的struct)

struct point {
    int x;
    int y;
} P;
1> Point = {point,20,25}. %% 创建元组
{point,20,25}
2> {point,X,Y}=Point. %% 提取元组的值到变量X,Y
{point,20,25}
3> X. %% 打印变量X
20
4> Y. %% 打印变量Y
25
1> Pc={{cpu,"intel i7"},{memory,"Kingston 8G"}}. %% 创建元组
{{cpu,"intel i7"},{memory,"Kingston 8G"}}
2> {_,{_,Memory}}=Pc. %% 提取内存型号到变量Memory,其中_(下划线)为匿名变量,可以绑定不同的值。
{{cpu,"intel i7"},{memory,"Kingston 8G"}}
3> Memory.
"Kingston 8G"

4,列表


1> [First,Second|Tail] = [1,2,3,4,5]. %% 提取列表元素
[1,2,3,4,5]
2> First.
1
3> Second.
2
4> Tail.
[3,4,5]

5,字符串


1> X="Hello!". %% 字符串必须用双线号
"Hello!"
2> X.
"Hello!"
3> f(). %% 清空当前Shell绑定的变量
ok
4> X.
* 1: variable 'X' is unbound

四,函数


-module(geometry). %% 几何模块
-export([area/1]).

area({rectangle,Width,Height}) ->
    Width * Height;
area({square,Side}) ->
    Side * Side.

1> geometry:area({rectangle,10,20}). %% 计算矩形面积
200
2> geometry:area({square,5}). %% 计算正方形面积
25

注:函数的返回值为最后一条语句的值。

几个常用的函数
pwd() 打印当前工作目录
ls() 列出当前目录所有文件
cd(Dir) 修改当前工作目录

你可能感兴趣的:(Erlang入门)