2008-01-18

ubuntu下编译安装Erlang

关键字: 编译
先要这样 apt-get install build-essential apt-get install libncurses5-dev apt-get install m4 apt-get install libssl-dev 然后要用新立得装如下库: libc6 unixodbc gcj 然后下载源代码 tar -xvf otp-src-R12B-0.tar.gz cd otp-src-R12B-0 sudo ./configure --prefix=/otp/erlang sudo make sudo make install 安装完毕,可以rm -f ...
分布式程序指设计用于运行在网络中的可以通过消息传递相互交流彼此的活动的计算机上的程序 分布式应用的好处:Performance、Reliability、Scalability、Intrinsically distributed application、Fun、 1, key-value server的简单例子: -module(kvs). -export([start/0, store/2, lookup/1]). start() -> register(kvs, spawn(fun() -> loop() end)). store(Key, Value) -> rpc( ...
使用BIF link将两个节点连接起来,如果其中一个节点B退出,则另一个节点A会收到{'EXIT', B, Why}的信号 可以创建一个on_exit(Pid, Fun)方法来捕获某个Pid进程的死掉: on_exit(Pid, Fun) -> spawn(fun() -> process_flag(trap_exit, true), link(Pid), receive {'EXIT', Pid, Why} -> Fun(Why) end end). Erlang可以远 ...
2008-01-09

Programming Erlang读书笔记8: Concurrency Programming

关键字: concurrency programming
在Erlang里: 1,创建和销毁进程非常快 2,进程间发送消息非常快 3,在所有的操作系统间进程行为一致 4,可以有大量的进程 5,进程不共享内存并且完全独立 6,与进程交互的唯一途径是发送消息 Concurrency Primitives Pid = spawn(Fun) Pid!Message receive Pattern1 [when Guard1] -> Expressions1; Pattern2 [when Guard2] -> Expressions2; ... after Time -> Express ...
1, Erlang程序由许多进程组成,这些进程可以相互发送消息 2,这些消息可能接收并理解也可能不接收不理解,如果你希望消息被接收并理解,你必须等待应答 3,进程组可以连在一起,如果一组进程中的一个死掉,则该组的其他进程会收到一个说明那个进程为啥死掉的消息
启动和停止Eshell $ erl 1> halt(). 查看/添加代码查找路径 code:get_path(). code:add_patha(Dir). code:add_pathz(Dir). erl -pa Dir1 -pa Dir2 ... -pz DirK1 -pz DirK2 查看载入的module和查看出错的module code:all_loaded(). code:clash(). 可以将code:add_patha()和code:add_pathz()扔到.erlang文件 运行Erl程序的几种方式: hello.erl ...
2008-01-07

Programming Erlang读书笔记5: Advanced SP

关键字: sequential programming
所有的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的数据结构 1> <<5, 10, 20>>. <<5,10,20>> 操作Binary的BIFs: @spec list_to_binary(lo ...
语法: try FuncOrExpressionSequence of Pattern1 [when Guard1] -> Expressions1; Pattern2 [when Guard2] -> Expressions2; ... catch ExceptionType: ExPattern1 [when ExGuard1] -> ExExpressions1; ExceptionType: ExPattern2 [when ExGuard2] -> ExExpressions2; ... after AfterExpressions ...
module是Erlang代码的基本单元,我们写的所有function都存储在module里面,module存储在.erl文件里面 module编译成.beam文件后方可运行 在Erlang_HOME建立一个名为.erlang的文件: io:format("consulting .erlang in ~p~n", [element(2, file:get_cwd())]). %% Edit to the directory where you store your code c:cd("C:/Program Files/erl5.6/work"). io:format("Now i ...
去http://www.erlang.org/download.html下载Windows版本的Erlang,将bin目录加入到系统path中 cmd进去输入erl回车,就进入Eshell了,输入q().或者Ctrl+C/Break可以退出Eshell(命令末尾加.然后回车才会执行函数) 在Eshell里输入help().可以看到命令列表(实际上是函数列表) 基于Debian的Linux系统下可以用命令apt-get install erlang来安装Erlang,Mac OSX下可以使用MacPorts来安装 从源代码构建: $ tar -xzf otp_src_R11B-4.ta ...
公司产品终于上线了,一切告一段落,可以有大把时间看书写字了。 新年最令人激动事:可以开始系统的学习Erlang了! Erlang的书籍和教材还很少,《Programming Erlang》是Erlang的发明者Joe Armstrong自己写的学习Erlang的书,可谓经典 为什么要学习Erlang?现在还不知道,学完了才知道Erlang值不值得学。 搞程序的需要宗教信仰啊。 Five reasons why you should learn Erlang: 1, You want to write programs that run faster when you run them on ...
hideto
搜索本博客
我的相册
A6bdc31c-c66e-468e-961e-9cc721e82adc-thumb
screenshot
共 1 张
存档
最新评论