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

内置函数:

  1. trunc(5.0)=>5取整函数

  2. 2004 rem 400=>4 取余函数

  3. length用于求列表长度

  4. 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

Published

2016-03-24

Categories


Tags