Erlang
文章平均质量分 64
laohan_
贵在坚持
展开
-
erlang 之简单的Diction实现
最近在看学erlang ,看到了字典这个demo ,把程序Copy出来和大家分享一下-module (diction).-export([new/0,lookup/2,add/3,delete/2]).new() -> [].lookup(Key , [{Key,Value}|Rest]) -> {value,Value};lookup(Key,[Pair|Rest])原创 2013-12-30 00:17:27 · 1151 阅读 · 0 评论 -
cowboy rest
REST Flowcharts这章节将通过一些列不同的流程图来介绍REST处理状态机。一个请求主要有四条路线,一个是方法OPTIONS, 一个是方法GET和HEAD;一个是PUT,POST和PATCH,最后一个是DELETE。所有的路径都是从“Start”开始,如果资源存在,除了OPTIONS路径,其他全部路径都经过“Content negotiation”并且可选“Cond翻译 2014-10-07 18:17:37 · 2930 阅读 · 0 评论 -
Clojure
#Clojure在Clojure中,任何函数调用都需要用括号将其包起来。括号里 的第一个元素是函数名,剩下的是参数。user=> ( println "Give Me Some Clojure!")Give Me Some Clojure!niluser=> (-1)ClassCastException java.lang.Long cannot be cast to c原创 2014-10-09 00:52:58 · 3282 阅读 · 0 评论 -
elixir quote, macro
Quote , quote and Macro1 引用与去引用elixir可以被自己的数据结构表示出来。在这一章,我们将会学习到这种数据结构是怎样子的,该如果去撰写它们。这一章的学习跟宏有关,下一章我们将会更深入的学习。1.1 引用elixir代码块用三元素的元祖来表示。列如sum(1, 2, 3)函数调用,内部可以表示为:{:sum, [], [1原创 2014-10-07 18:22:42 · 2651 阅读 · 0 评论 -
cowboy 基础使用
CowboyInitialization首先, init函数会被调用,所有的处理都会调用该函数。如果使用rest处理当前的请求,那么这个函数必须返回upgrade[init({tcp, http}, Req, Opts) -> {upgrade, protocol, cowboy_test}.cowboy会转为REST协议来开始执行状态机,如果rest_init原创 2014-10-07 18:14:48 · 2888 阅读 · 0 评论 -
PoolBoy
PoolBoy source code :https://github.com/devinus/poolboyCheckoutready({checkout, Block, Timeout}, {FromPid, _}=From, State) -> #state{supervisor = Sup, workers = Wo原创 2014-09-04 10:21:55 · 3262 阅读 · 0 评论 -
erlang 之时钟
今天来看一下erlang中的时钟如何实现的:-module(timeout).-export([sleep/1,flush_buffer/0]).%%%睡眠函数sleep(Time) -> receive after Time -> true end.%%%清空邮箱flush_buffer() -> receive AnyMessage ->原创 2014-03-09 00:54:10 · 1778 阅读 · 0 评论 -
erlang 基础
Erlang变量在Eelang中一个变量的范围是在相同函数中变量被绑定后的任意位置。Case unsafe(X) →case X of one → Y = true ;_ → Z =false ;end,Y.这是一种不好的变成习惯。Y可能没有被定义。下面是安全使用变量的理想方法,对应的变量只绑定一次,而变量的值由一个case语句决定。Case 是一种匹配的方原创 2014-02-11 01:11:42 · 1000 阅读 · 0 评论 -
erlang 之 echo 服务器
简单实现了一个echo 服务器-module(echo).-export([start/0,loop/0]).start() -> Pid = spawn(echo,loop,[]), Pid ! {self(),'Hello Word'}, receive {Pid,Msg} -> io:format('~w~n',[Msg]) end, Pid ! st原创 2014-01-16 01:05:24 · 1524 阅读 · 0 评论 -
erlang --进程生成测试
下班了,写个程序先其中进程之间的消息传递如图erlang code-module(myring).-export([start/1,start_proc/2]).start(Num) -> start_proc(Num,self()).start_proc(0,Pid) -> receive ok -> ok end, Pid ! ok ;原创 2014-01-17 18:30:27 · 863 阅读 · 0 评论 -
erlang -- timeout 的简单使用
今天晚上有点晚了,不过还是坚持每一天写一个程序!下面的时超时器 : 建设A要想db进程发送一个信息,然后在规定的时间内等待消息的返回,那么A可以设置一个超时器,注意的是在发送消息之前,得先清空消息队列,要不然等译接到的消息可能db还没发送之前的了read(Key) -> flush(), db | {self(),{read,Key}}, receive {re原创 2014-01-17 00:55:28 · 1085 阅读 · 0 评论 -
erlang 并发编程
最近上班比较忙,没时间学习erlang ,实在对不起自己啊,以前一直在找erlang相关的教程,终于找到一个了,这个网站是前几天才开始运行的,以后的文章可能都是来自于那里,网站是http://www.erlang-cn.com ,大家忙没事多学习!并发编程一:-module(tut15).-export([start/0,ping/2,pong/0]).ping(0,Pong_原创 2014-01-11 22:08:04 · 1777 阅读 · 0 评论 -
erlang 简单的树操作
下面是一个简单非平衡的二叉树的操作-module(tree).-export([test1/0]).lookup(Key,nil) -> not_found;lookup(Key,{Key,Value,_,_}) -> {found,Value};lookup(Key,{Key1,_,Smaller,_}) when Key lookup(Key,Smaller);l原创 2014-01-08 00:10:56 · 997 阅读 · 0 评论 -
erlang 之简单密码加密
这些程序主要是来之 连城 翻译的一个书里面的代码-module(encode).-export([encode/2]).encode(Pin.Password) -> Code = {nil,nil,nil,nil,nil,nil,nil,nil,nil, nil,nil,nil,nil,nil,nil,nil,nil,nil, nil,nil,nil,nil,nil,n原创 2013-12-30 00:20:10 · 1261 阅读 · 0 评论 -
a simple erlang process pool analysis
a simple erlang process pool analysis原创 2014-08-10 23:48:59 · 1236 阅读 · 0 评论