Programming Erlang读书笔记2:Getting Started

news/2024/5/19 1:27:01 标签: Erlang, 读书, OSX, Ruby, REST
去[url]http://www.erlang.org/download.html[/url]下载Windows版本的Erlang,将bin目录加入到系统path中
cmd进去输入erl回车,就进入Eshell了,输入q().或者Ctrl+C/Break可以退出Eshell(命令末尾加.然后回车才会执行函数)

在Eshell里输入help().可以看到命令列表(实际上是函数列表)

基于Debian的Linux系统下可以用命令apt-get install erlang来安装Erlang,Mac OSX下可以使用MacPorts来安装

从源代码构建:
[code]
$ tar -xzf otp_src_R11B-4.tar.gz
$ cd otp_src_R11B-4
$ ./configure
$ make
$ sudo make install
[/code]

[url=http://cean.process-one.net/]CEAN[/url](Comprehensive Erlang Archive Network)是类似于Py的CPAN的东东,也可以选择从CEAN安装Erlang环境

[b]整数[/b]
Erlang里允许任意长度的整数
[code]
1> 123456789 * 987654321 * 112233445566778899 * 998877665544332211.
[/code]
当然Ruby也一样

[b]不可变的变量[/b]
Erlang里的变量首字母要求大写
[code]
1> X = 123456789.
[/code]
Erlang里的变量像代数里的变量一样只允许赋值一次,可以使用f()函数来forget all variable bindings
赋过值的变量称为bound variable,否则称为unbound variable
“=”在这里不是赋值操作符,而是模式匹配符
Erlang里一个变量只是一个值的引用,即一个指向存储值的区域的指针,而这个值不能被改变

Erlang里变量不可变最大的好处利于多核编程,因为Erlang不像C或Java,它没有mutable state,所以没有shared memory,没有锁

[b]浮点数[/b]
[code]
1> 5/3.
1.66667
2> 4/2.
2.00000
3> 5 div 3.
1
4> 5 rem 3.
2
5> 4 div 2.
2
6> Pi = 3.14159.
3.14159
7> R = 5.
5
8> Pi * R * R.
78.5397
[/code]

[b]Atom[/b]
Erlang里,Atom用来表示非数字常量,它类似于C或Java里的枚举类型
Atom以小写字母开始,后面接字母、下划线或@符
Atom也可以用单引号括起来,这样就可以使用大写字母开头或带空格等的Atom

Atom有点类似Ruby里的Symbol

[b]Tuple[/b]
Tuple用来将一些元素分组,它使用大括号将元素括起来,并用逗号隔开
Tuple类似于C里的structs,但Tuple是匿名的,而且Tuple里的fields没有名字
Tuple里的items可以为任何类型,Tuple可以嵌套
推荐做法是Tuple的第一个元素为一个Atom,这样可以清楚的描述该Tuple
[code]
1> Person = {person,
{name, joe},
{height, 1.82},
{footsize, 42},
{eyecolour, brown}}.
[/code]
Erlang也是有垃圾回收机制的,不用的内存会自动回收
取Tuple的值:
[code]
1> Point = {point, 10, 45}.
{point, 10, 45}
2> {point, X, Y} = Point.
{point, 10, 45}
3> X.
10
4> Y.
45
[/code]
也可以用匿名变量“_”作为占位符放在不想取值的地方:
[code]
5> {_, _, A} = Point.
{point, 10, 45}
6> A.
45
[/code]

[b]List[/b]
List用来存放多个元素,它用中括号将元素括起来,并用逗号隔开
List左边第一个元素我们称为head,剩下的元素组成的List称为tail
例如对[1,2,3,4,5],head为1,tail为[2,3,4,5]
如果T为一个List,则[H|T]也是一个List,head为H,tail为T

从List取值的方法:
[code]
1> L = [1,2,3,4,5].
[1,2,3,4,5]
2> [A1|Rest] = L.
[1,2,3,4,5]
3> A1.
1
4> Rest.
[2,3,4,5]
5> [A2,A3|TheRest] = L.
[1,2,3,4,5]
6> A2.
1
7> A3.
2
8> TheRest.
[3,4,5]
[/code]

[b]字符串[/b]
Erlang里字符串必需用双引号括起来
Erlang的字符串使用Latin-1(ISO-8859-1)字符集

http://www.niftyadmin.cn/n/727672.html

相关文章

vs2008 三大形象代言人

无聊,试验贴图 转载于:https://www.cnblogs.com/peteryu007/archive/2008/11/29/1343749.html

为什么项目经理这么累

李强是从技术做到项目经理的,他没升职之前就经常加班,但是升职之后几乎每晚都要加班到十一二点,每天都有忙不完的工作和开不完的会。 有一次他跟朋友吐槽:“别人升职有这样的吗?我一个人几乎做了一个团队的事情&#…

Programming Erlang读书笔记3: Sequential Programming

module是Erlang代码的基本单元,我们写的所有function都存储在module里面,module存储在.erl文件里面 module编译成.beam文件后方可运行在Erlang_HOME建立一个名为.erlang的文件: [code] io:format("consulting .erlang in ~p~n", [element(2, f…

java火柴游戏_【求助】java小游戏【拿火柴】游戏的问题,谢谢了!

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼}});userBtn.setBounds(400, 40, 90, 20);mainPanel.add(userBtn);//用户按钮添加到主面板上 userNum new JComboBox();//定义一个下拉列表框for (int i 0; i < MAX_TAKE; i)//定义一个拿最大的循环{userNum.addItem(i 1);//…

成功者的这十个心态,值得我们学习

提及成功&#xff0c;很多人都从不同的角度来诠释。为什么有的人会成功&#xff0c;你知道成功者有哪些行为值得我们学习吗&#xff1f; 1、有目标 目标大&#xff0c;问题就小&#xff1b;目标小&#xff0c;问题就大&#xff1b;&#xff01;一个人有目标就睡不着&#xff0c…

程序自保存任意类型资源文件

////TITLE:// 程序自保存任意类型资源文件//AUTHOR:// norains//DATE:// Monday 08-December-2008//Environment:// WINCE 5.0 ARM4VI BSP// 首先说一下&#xff0c;这标题听起来自己都觉得拗口&#xff0c;但限于本人文采所限&#xff0c;实在想不出更好的篇目…

Programming Erlang读书笔记4: Exceptions

语法: [code] try FuncOrExpressionSequence ofPattern1 [when Guard1] -> Expressions1;Pattern2 [when Guard2] -> Expressions2;... catchExceptionType: ExPattern1 [when ExGuard1] -> ExExpressions1;ExceptionType: ExPattern2 [when ExGuard2] -> ExExpres…

JAVA完美字符串尽可能长_阿里巴巴高级Java面试题 续2

八、深入理解java异常处理机制引子try…catch…finally恐怕是大家再熟悉不过的语句了&#xff0c;public class TestException {public TestException() {}boolean testEx() throws Exception {boolean ret true;try {ret testEx1();} catch (Exception e) {System.out.print…