erlang-基础概念
sudo brew install erlang
安装错误:Error: Cowardly refusing to `sudo brew install` for installing
>解决:sudo chown -R $USER /usr/local
想用户在任何方式进入Erlang Shell时都自动切换到指定的工作目录,则可以在用户目录中的编辑一个.erlang文件 ,如:
c:cd("study/erlang").
io:format("My new work in: ~p!n", [element(2, file:get_cwd())]).
erlang声称他们取得了“9个9的可靠性”。 通过通信来共享内存,是一门面向消息的的函数式编程语言
输入erl进入命令行
halt()用于推退出erlang系统,也可以两次command+c
f()用于释放已绑定表达式
X=3. %%正确
X=4. 报错,此处=不是赋值而是表达式匹配,第一次匹配成功的原因:X未绑定将X和3绑定,再次匹配4的时候直接报错
列表:
[First |TheRest] = [1,2,3,4,5]. %%|用于分割列表,First匹配1后面的匹配剩下的
[A, B | C] = [1, 2].
[1,2]
1> A.
1
2> B.
2
3> C.
[]
-module(tut). %%表示模块名,要和文件名一致
-export([double/1]).%%可以在其他模块使用, 函数名double参数个数1
c(tut).%%加载模块c是compiled意思
tut:double(3).%%调用模块方法
- 变量必须是大写字母开头
所有原子类型都是以小写字母开头,只是名字没有值
数据类型:
元组{A,B}
列表:[A,B] ,列表像其他其他语言的链表
map:#{“key”=>42}.
if Condition 1 -> Action 1; Condition 2 -> Action 2 end 注意,在 end 之前没有 “;”
如果所有条件都测试失败,则会产生运行时错误。一个测试恒为真的条件就是 true。它常用作 if 的最后一个条件,即当所有条件都测试失败时,则执行 true 后面的动作。case A of 1 -> 3; 2 -> 5 end
内置函数:
trunc(5.0)=>5取整函数
2004 rem 400=>4 取余函数
length用于求列表长度
is_tuple判断是否是元组
高阶函数:
1> Xf = fun(X) -> X * 2 end.
#Fun<erl_eval.5.123085357>
2> Xf(5).
10
lists:map:
1> Add_3 = fun(X) -> X + 3 end.
#Fun<erl_eval.5.123085357>
2> lists:map(Add_3, [1,2,3]).
[4,5,6]
blog comments powered by Disqus