Erlang 学习笔记一

数值(number)

双精度表示.并非单精度
2#0101010101001  将这个转换成二进制

16#FFFFFFF 将这个转换成十二进制

<<1,2,3>> 	二进制串

元组(tuples)

{}  花括号代表元组
{"1","2"}
{"1",{"2","3"}}

字符串(string)

"111"

列表(list)

[97,98,99]
	变成了 'abc'  将ASCll 转换成具体内容

ASCll 具体转换

$a
	97

$A
	65

Unicode

"\x{1123}"
		[4387]

原子(atomic)

任何以小写字母开头的就是原子绑定即不可摘除  如果想以大写'A'  单引号

变量一旦创建不可更改

变量(variable)

a = 5 
b = 6

函数(1)

-module(one).
-export([area/1])  
area(Shape)->
	case Shape of
		{rectangle,W,H}->  %%第一个是原子
			W*H
		{square,W}->
			W*W
		{circle,R}->
			3.14.5926 * R * R
		_Any->     #如果都不是 执行这个"_"无用变量处理
			argeError
	end.

c(当前写入的文件名字)
one:area({rectangle,2,3})
	6
one:area({square,3})
	4
 以上就是通过函数 然后匹配到对应的原子 进行赋值操作

函数(2)

-module(one).
-export([area/1])  

area({rectangle,H,W})-> W*H
area({square,W}) -> W*W
area({CIRCLE,R})-> 3.1415926 *R * R

虽然是三个函数 但是也是经过原子进行逐个匹配 查看是对应,如果原子都匹配不到 则会报错

函数(3)

if 条件判断

start(Num)->
	if 
		Num>0 ->ok;
		Num<0-> false;
		true->true
	end.

购物车小例子

--moudle(one).


-export([total/1])
cost(apple)->3;
cost(banana)->3;
cost(peach)->3;

map(F,[H|T])->[F(H)|map(F,T)];
map(_,[]) ->[].

sum([H|T])->H+sum(T);
sum([]) ->0.

total([]) ->0;
total(Shop)->
    	sum(map(fun({Name,Number})->cost(Name)*Number end,Shop)).

 编译
 one:total([{apple,2},{ banana,1},{peach,1}])
 	9

讲解:
	1.利用cost语句模式匹配 来匹配当前的属于那个原子
	2.total韩式第一次调用的是sum
	3.sum做了什么  将头尾分离 然后又开始头尾分离 直到空列表[]然后再交给map做循环处理

Erlang递归处理

tital([])->0;
	total([{Name,Nubber}|Other])->
		cost(Name)*Number + total(Other).

映射表

#{}

内置函数

register	注册表
	register(cache,Pid)	将本次的进程ID原子名为cache 发消息则很方便(进程之间)
	Pid!("1","2")
self()
	当前发消息的进程
receiv()
	接受消息(当前进程)
map	映射表

结合文档 再结合哔哩哔哩李如意视频简单介绍

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值