Erlang简单介绍整理

最近在看《七周七语言》,适当了解一些C语言家族以外的编程语言也很有意思,下面记录一下各个语言的语法特点。

一,erl打开Erlang交互命令行

% 用百分号注释,语句用句号标志结束
% 变量必须是大写字母开头,只可赋值一次
> Name = "ciaos".
"ciaos"
> Name.
"ciaos"
% 符号首字母小写
> Color = red.
red
% 模式匹配经常使用
> Person = {person, {name, "ciaos"}, {age, 25}}.
{person,{name,"ciaos"},{age,25}}
> {person, {name, Name}, {age, Age}} = Person.
{person,{name,"ciaos"},{age,25}}
> Name.
"ciaos"
> Age.
25

二,函数/模块

% 动态类型,不必担心数据元素赋值是什么
% basic.erl
-module(basic).
-export([test/1]).

test(0) -> 1;
test(1) -> 1;
test(Para) -> test(Para - 1) + test(Para - 2).

% 进入erl运行如下
1> c(basic).
{ok,basic}
2> basic:test(3).
3

% 函数赋值
> Negate = fun(I) -> -I end.
#Fun<erl_eval.6.82930912>
> Negate(-1).
1

三,控制结构

% case 模式匹配
> Animal = "dog".
"dog"
> case Animal of
>   "dog" -> wangwang;
>   "cat" -> miaomiao;
>   _ -> unknown
> end.
wangwang
% if "哨兵" guard
> X = 0.
0
> if
>   X > 0 -> positive;
>   X < 0 -> negative;
>   true -> zero
> end.
zero

四,列表操作(含匿名函数)

> Fibs = [1,1,2,3,5].
[1,1,2,3,5]
> Double = fun(X) -> X * 2 end.
#Fun<erl_eval.6.82930912>
> lists:map(Double, Fibs).
[2,2,4,6,10]
> [Double(X) || X <- Fibs].
[2,2,4,6,10]

五,其他知识点
1,Erlang三种并发原语:“!”发送消息,spawn产生进程,receive接受消息
2,实现同步消息通讯
3,链接进程提升稳定性,热部署

总结:
1,构建可靠的分布式系统
2,轻量级,无共享资源的进程
3,OTP——企业级的库(容错性,可扩展性,热插拔)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值