erlang一小步

昨天打印了Joe Armstrong的《programming Erlang》,迫不及待地开始了阅读。本想写读书笔记,发现JavaEye的hideto早就写过了,作罢,学习他。今天迈开erlang的第一小步。

 

1下载并安装

fedora的安装我上篇说过了。今天在windows下搞。http://www.erlang.org/download.html 下载Sept 3, 2008 R12B-4 (最新的Nov 5, 2008 R12B-5 下载时发现有木马,没敢下)。

 

2创建所需目录和文件

安装完毕后,在c盘,我创建了erlwork目录。根据书里的例子,在erlwork目录下,创建一个文件geometry.erl,内容如下:

-module(geometry).
-export([area/1]).
area({rectangle,Width,Ht}) -> Width * Ht;
area({circle,R}) -> 3.14159 * R * R.

 

这个模块的功能很简单,计算矩形和圆形的面积。第一句是定义模块名称,第二句是告诉编译器,我有一个函数,名叫area,它有1个参数。

 

3执行测试

开始-程序-Erlang OTP R12B-Erlang 打开编辑器,出现如下提示:

Erlang (BEAM) emulator version 5.6.4 [smp:2] [async-threads:0]

Eshell V5.6.4  (abort with ^G)

 

我们检测一下当前工作的目录(类似eclipse的workspace的概念),输入:
1> pwd()
1> .
C:/Program Files/erl5.6.4/usr
ok

 

刚开始使用erlang,总忘记在结束的时候输入. 只好折行再补充。

这个目录不是我们需要的。我们改到c盘的erlwork目录,输入:
2> cd("c:/erlwork").
c:/erlwork
ok

 

好了,现在开始干活。首先编译我们的erl文件,编译好后将出现一个.beam文件。

完全类似.java文件编译成.class文件。输入:
3> c(geometry).
{ok,geometry}

 

现在编译好了,erlwork中有了geometry.beam这样一个文件。

erlang是函数编程语言,开始测试我们的函数吧。
4> geometry:area({rectangle,10,5}).
50
5> geometry:area({circle,1.4}).
6.157516399999999

 

第一个测试成功。

 

再来看一个:

 

定义一个list:

1> L=[1,2,3,4].
[1,2,3,4]

定义一个匿名函数Double:
3> Double=fun(X) -> 2* X end.
#Fun<erl_eval.6.13229925>

 

利用erlang函数库和那个名叫Double的Funs,计算我们定义好的名叫L的list
4> lists:map(Double,L).     
[2,4,6,8]

 

效果不错。

 

今天迈出去第一小步。感觉erlang的冲击力太大了,完全和面向对象编程不同,这种感受很折磨人,同时也很刺激。

当看到erlang使用递归玩for循环时,感觉high得不行。

ok,今天就到这里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值