My studying notes for Java,Ruby,Ajax and other any interesting things.

显示标签为“FP”的博文。显示所有博文
显示标签为“FP”的博文。显示所有博文

星期二, 一月 22, 2008

[fwd]Erlang快速入门



Erlang超快速入门

日期:2007-04-06

目录
1 开始使用erlang
2 使用Erlang作为计算器
3 编辑前面的表达式
4 编译你的第一个程序
5 深入了解Erlang

1 开始使用erlang

如果你在unix系统下输入 erl ,或者在Window$系统下双击Erlang的图标,你可以看到一些提示:
os prompt > erl
Eshell V5.5.4 (abort with ^G)
1> _

其中 “>”提示符意味着系统正在等待输入。

2 使用Erlang作为计算器
1> 213183682167*12937192739173917823.
27579983733990928813319999135233
2> _

记住每个表达式以英文句号结束

3 编辑前面的表达式

可以使用简单的emacs命令获取前面的表达式。常见的几个如下:Unix键 Win$键 说明
^P Up 获取前一行(previous)
^N Down 获取下一行(next)
^A Home 到行首
^E End 到行尾
^D Del 删除光标前字符
^F Left 向前移动一个字符
^B Right 向后移动一个字符
Return Enter 执行当前命令


注意:^X意味着Control+X 。

尝试按下Control+P来查看结果。

译者注:一位朋友提示如上的快捷键是在unix系统之下的,Window$下的快捷键附在了如上列表后的括号内。另外,在Unix系统下使用Control+G的退出方式,在Window$下使用Control+C来退出。

4 编译你的第一个程序

把如下内容输入到一个文件里:
-module(test).
-export([fac/1]).

fac(0) -> 1;
fac(N) -> N * fac(N-1).

把这些存储到文件 test.erl 中,文件名必须与模块名相同。

编译这个程序使用如下命令,并且运行:
3> c(test).
{ok,test}
4> test:fac(20).
2432902008176640000
5> test:fac(40).
815915283247897734345611269596115894272000000000
6> _

现在可以做些其他有趣的事情了。

[fwd]Erlang初体验



久闻erlang大名,随着身边的一些项目开始采用erlang,看来不得不好好学习一下erlang了,以后也可以跟人说,今天你lang了吗

1.编译
在mac下,安装还是很简单的
引用
port install erlang
一切ok了

2.erlang的交互环境
由于一直搞python,所以很喜欢语言拥有一个shell交互环境,erlang也为我们提供了一个,在命令行下输入:
引用
erl
http://www.haokanbu.com/p/49620/

3.编辑器
工欲善其事必先利其器,我的开发环境:
http://www.haokanbu.com/p/49619/

4.尝试erlang的分布式编程
学习erlang,主要的目的就是学习他在分布式方面的使用
概念:
引用
节点是分布式Erlang的核心概念。在一个分布式Erlang应用中,术语(term)节点(node)意味着一个可以加入分布式 transactions的运行系统。通过一个称为net kernal的特殊进程,一个独立的Erlang系统可以成为一个分布式Erlang系统的一部分。当net kernal进程启动的时候,我们称系统是alive的。
在erlang中创建一个节点,非常容易:
引用
erl -sname node1
给一个节点发送消息:
引用
{Name, Node} ! Mess.
更详细的说明参见这里:
http://dennis-zane.javaeye.com/blog/94015

5.Unit Test in Erlang
除了写代码,我们还要保证质量,erlang也有相应的unitest方案:
https://support.process-one.net/doc/display/CONTRIBS/EUnit
中文说明:
http://erlang-china.org/start/unit_test_in_erlang.html

参考资料:
Erlang超快速入门
http://erlang-china.org/start/fast-start.html