- 浏览: 2690573 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
80后的童年2:
深入浅出MongoDB应用实战开发网盘地址:https://p ...
MongoDB入门教程 -
shliujing:
楼主在不是精通java和php的前提下,请不要妄下结论。
PHP、CakePHP哪凉快哪呆着去 -
安静听歌:
希望可以一给一点点注释
MySQL存储过程之代码块、条件控制、迭代 -
qq287767957:
PHP是全宇宙最强的语言!
PHP、CakePHP哪凉快哪呆着去 -
rryymmoK:
深入浅出MongoDB应用实战开发百度网盘下载:链接:http ...
MongoDB入门教程
所有的BIFs都属于erlang module,如erlang:tuple_to_list()、erlang:time(),但是大部分BIFs都auto-imported了,所以可以直接调用tuple_to_list()、time()
erlang module的所有BIFs列表见:http://www.erlang.org/doc/man/erlang.html
Binary是用来存储大量raw data的数据结构
操作Binary的BIFs:
Bit Syntax:
预定义Module属性
用户自定义Module属性
SomeTag必须为一个atom,Value必须为literal term
Boolean Expressions
字符集
Erlang源代码按ISO-8859-1(Latin-1)编码处理
Erlang内部没有字符数据类型,字符串事实上并不存在而是由整数列表来表示
Erlang对Unicode解析有限,因为整数列表有限
注释
Erlang里的代码注释以%开始,为单行注释
epp
在Erlang模块编译之前,Erlang的预处理器epp先处理它
epp会扩展源代码里的macros并插入必要的头文件
可以使用命令cmopile:file(M, ['P'])来编译M.erl并将结果输出到M.P文件里
Escape Sequence
方法引用
Include Files
Erlang里被引入的文件的扩展名为.hrl
List加减
Macros
当遇到形如?MacroName的表达式时Macros会被epp扩展:
上面的foo(A)会被扩展为:
一些预定义的macros提供当前module的信息:
Macros的Control Flow:
Precess dictionary--Erlang里的HashMap
Short-Circuit Boolean Expression
Term Comparisons
erlang module的所有BIFs列表见:http://www.erlang.org/doc/man/erlang.html
Binary是用来存储大量raw data的数据结构
1> <<5, 10, 20>>. <<5,10,20>>
操作Binary的BIFs:
@spec list_to_binary(loList) -> binary() @spec split_binary(Bin, Pos) -> {Bin1, Bin2} @spec term_to_binary(Term) -> Bin @spec binary_to_term(Bin) -> Term @spec size(Bin) -> Int
Bit Syntax:
1> Red = 2. 2 2> Green = 61. 61 3> Blue = 20. 20 4> Mem = <<Red:5, Green:6, Blue:5>>. <<23,180>> 5> <<R1:5, G1:6, B1:5>> = Mem. <<23,180>> 6> R1. 2 7> G1. 61 8> B1. 20
预定义Module属性
-module(modname). -import(Mod, [Name1/Arity1, Name2/Arity2,...]). -export([Name1/Arity1, Name2/Arity2,...]). -compile(Options). -vsn(Version).
用户自定义Module属性
-SomeTag(Value).
SomeTag必须为一个atom,Value必须为literal term
%% attrs.erl -module(attrs). -vsn(1234). -author({joe,armstrong}). -purpose("example of attributes"). -export([fac/1]). fac(1) -> 1; fac(N) -> N * fac(N-1). 1> attrs:module_info(attributes). [{vsn,[1234]},{author,[{joe,armstrong}]},{purpose,"example of attributes"}]
Boolean Expressions
1> not true. false. 2> true and flase. false. 3> true or false. true 4> true xor false. true
字符集
Erlang源代码按ISO-8859-1(Latin-1)编码处理
Erlang内部没有字符数据类型,字符串事实上并不存在而是由整数列表来表示
Erlang对Unicode解析有限,因为整数列表有限
注释
Erlang里的代码注释以%开始,为单行注释
epp
在Erlang模块编译之前,Erlang的预处理器epp先处理它
epp会扩展源代码里的macros并插入必要的头文件
可以使用命令cmopile:file(M, ['P'])来编译M.erl并将结果输出到M.P文件里
Escape Sequence
\b Backspace 8 \d Delete 127 \e Escape 27 \f Form feed 12 \n New line 10 \r Carriage return 13 \s Space 32 \t Tab 9 \v Vertical tab 11 \NNN \NN \N Octal characters(N is 0..7) \^a..\^z or \^A..\^Z Ctrl+A to Ctrl+Z 1 to 26 \' Single quote 39 \" Double quote 34 \\ Backslash 92 \C The ASCII code for C An integer
方法引用
-moduel(x1). -export([square/1, ...]). square(X) -> X * X. double(L) -> lists:map(fun square/1, L). -module(x2). double(L) -> lists:map(fun x1:square/1, L).
Include Files
Erlang里被引入的文件的扩展名为.hrl
-include(Filename). -include_lib("kernel/include/file.hrl").
List加减
1> [1,2,3] ++ [4,5,6]. [1,2,3,4,5,6] 2> [a,b,c,1,d,e,1,x,y,1] -- [1,1]. [a,b,c,d,e,x,y,1]
Macros
-define(Constant, Replacement). -define(Func(Var1, Var2, .. , Var), Replacement).
当遇到形如?MacroName的表达式时Macros会被epp扩展:
-define(macro1(X, Y), {a, X, Y}). foo(A) -> ?macro1(A+10, b)
上面的foo(A)会被扩展为:
foo(A) -> {a, A+10, b}
一些预定义的macros提供当前module的信息:
?FILE 当前文件名 ?MODULE 当前module名 ?LINE 当前行数
Macros的Control Flow:
-define(Macro). -undef(Macro). -ifdef(Macro). -ifndef(Macro). -else. -endif.
Precess dictionary--Erlang里的HashMap
1> erase(). [] 2> put(x, 20). undefined 3> get(x). 20 4> get(). [{x, 20}] 5> erase(x). 20 6> get(x). undefined
Short-Circuit Boolean Expression
Expr1 orelse Expr2 Expr1 andalso Expr2
Term Comparisons
X > Y X < Y X =< Y X >= Y X == Y X /= Y X =:= Y X =/= Y
发表评论
-
ECUG III -- Elrang中国用户组第三次活动
2008-11-06 11:00 2256详情请见: http://ecug.org/ 大家也帮忙宣传 ... -
Erlang内存管理和运行模式笔记
2008-09-25 16:40 5396Erlang进程非常轻量级 进程间通过消息传递进行通讯 进程接 ... -
Erlang:一个通用的网络服务器
2008-09-24 16:50 6156原文: Erlang: A Generalized TCP S ... -
Erlang里的make
2008-09-22 17:38 3750Erlang自带一个make工具 我们看一个例子 目录结构: ... -
介绍Erlang里的Record
2008-09-12 15:52 8596原文: Erlang: An Introduction to ... -
Erlang与ActionScript3采用JSON格式进行Socket通讯
2008-09-02 16:37 6316前提: 需要下载as3corelib来为ActionScrip ... -
Erlang的JSON库
2008-09-02 15:40 9362使用下列JSON库: http://www.lshift.ne ... -
Erlang和ActionScript3的Socket通讯
2008-09-02 13:18 2886server.erl -module(server). ... -
Erlang和Ruby的Socket通讯
2008-09-01 22:12 2323server.erl -module(server). ... -
Erlang实现简单Web服务器
2008-09-01 17:59 5791转贴一个简单的Web服务器: httpd.erl %% h ... -
Mnesia用户手册:五,Mnesia高级特性
2008-09-01 17:27 7060本章描述了构建分布式、容错的Mnesia数据库相关的高级特性: ... -
Mnesia用户手册:四,事务和其他访问上下文
2008-08-29 00:06 6832本章讲述Mnesia事务系统和事务属性,它们让Mnesia成为 ... -
Mnesia用户手册:三,构建Mnesia数据库
2008-08-27 21:46 9246本章详细介绍了设计Mnes ... -
Mnesia用户手册:二,Mnesia快速上手
2008-08-27 14:09 9136本章介绍了Mnesia: 1) ... -
Mnesia用户手册:一,介绍
2008-08-26 15:47 7797Mnesia是一个分布式数据 ... -
OTP Design Principles: Supervisor Behaviour
2008-08-26 00:06 3115Supervisor Behaviour是一个用来实现一个su ... -
gen_event例子:terminal_logger
2008-08-25 16:23 1667定义三个terminal_logger: $$ termina ... -
OTP Design Principles: Gen_Event Behaviour
2008-08-25 16:06 18111,事件处理原则 在OTP里,event manager是一个 ... -
gen_fsm例子:code_lock
2008-08-22 18:35 2146改了一下代码,可以run了: %% code_lock.erl ... -
OTP Design Principles: Gen_Fsm Behaviour
2008-08-22 17:29 18511,有限状态机 FSM,有 ...
相关推荐
5. ** OTP (Open Telecom Platform)**:OTP是Erlang的标准库,包含了一系列的设计原则、库和工具,用于帮助开发者构建高效、可靠和可维护的系统。OTP中的行为(Behaviours)如GenServer、GenEvent和Gen_fsm等,提供...
Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ ...
本书《Programming Erlang》旨在帮助读者理解和掌握如何使用Erlang编程语言来构建并行世界中的软件。从目录可以看出,本书首先介绍了Erlang的基础概念和安装指南,随后逐步深入到更高级的主题和技术细节。通过这种...
《Programming Erlang》是Joseph Armstrong所著的一本详细介绍Erlang编程语言的书籍。这本书旨在帮助读者理解Erlang的设计哲学、语法特性以及如何利用它来构建高效、容错的并发系统。Erlang是一种静态类型、函数式...
5. 错误处理和容错:Erlang的设计哲学是“let it crash”,即允许错误发生,然后通过监控和重启来恢复服务。源码中可以看到如何设置监控树,以及当进程失败时如何优雅地重启。 6. BEAM虚拟机:Erlang运行在BEAM虚拟...
读书笔记:ErlangOTP设计原则中文文档
我自己在新学erlang,在LeetCode OJ上找了题目练习,题目很适合新手熟悉语言,但是LeetCode OJ里面只有几门主流语言的答案,下面是已完成的erlang源代码,后续有空再做其他问题续传,题目包含:(源码开头都有题目...
《Programming Erlang》是由Joe Armstrong编著的一本关于Erlang编程语言的经典著作。这本书深入浅出地介绍了Erlang的各个方面,旨在帮助读者理解和掌握这门强大的并发和分布式计算语言。 Erlang是一种静态类型、...
### 关于《Pragmatic Programming Erlang 第二版》的核心知识点概述 #### 一、书籍基本信息及背景介绍 《Pragmatic Programming Erlang 第二版》由Erlang之父Joe Armstrong撰写,是一本深入浅出地介绍了Erlang语言...
《Programming Erlang second edition》是Joe Armstrong的经典著作,它是Erlang编程语言领域的权威指南,该书第二版于2013年首次发行。书中不仅覆盖了Erlang的核心语言和框架基础知识,还包括了重要的社区项目,例如...
5. **安全考虑**: 由于guest用户对所有网络都开放,我们通常会创建新的用户并限制其访问权限。例如,创建一个名为`myuser`的用户: ``` sudo rabbitmqctl add_user myuser mypassword sudo rabbitmqctl set_...
otp_win64_24.1.7.exe
《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF
Pragmatic Programmer,Pragmatic Programming,Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers,LLC. Every precaution was taken in the preparation of this book....
Concurrency is natural in ...The model of programming that Erlang uses is very similar to how the world works. This makes programming easy. Many programmers have discovered this, as have many companies.