2012年12月21日

list相关的习题

摘要: 代码如下 1 -module(adv_list). 2 -export([filter/2, reverse/1, concatenate/1, flatten/1]). 3 4 filter(List, Value) -> 5 FiltedList = [X || X<-List, X=<Value], 6 io:format("filted:~w~n", [FiltedList]). 7 8 reverse(List) -> 9 RevertedList = revert(List, []),10 io:format("reverted 阅读全文

posted @ 2012-12-21 17:22 应无所住而生其心 阅读(314) 评论(0) 推荐(0) 编辑

erlang四大behaviour

摘要: erlang四大behaviour之一gen_server(转载) erlang程序设计里面有个设计原则就是把你的进程构造成树,把共用代码提出来,特定功能用自己的module实现,这也就是behaviour了,应用behaviour可以减少与本身事务无关的代码量,设计逻辑更加清晰。老纪边学习边记录吧。gen_server实现服务器/客户端模型,用于多个客户共用一个资源的这种情况。他由几个接口函数和几个回调函数组成(回调函数必须在你的module里定义)这些可以参考erlang的doc举个例子:Erlang代码 -module(ch3).%这是我们的回调模块,也是我们实现业务逻辑的模块-beha 阅读全文

posted @ 2012-12-21 11:51 应无所住而生其心 阅读(716) 评论(0) 推荐(0) 编辑

erlang-scala真锋对决

摘要: 今天看到一篇关于erlang和scala这两个分布式程序设计语言的文章,且对他们之间的好坏优劣做了个比较,老纪今天把它翻译出来供大家参考, 原文在这里在 我把时间浪费在可恶的社会新闻站点的活动上时,我看到越来越多关于scala的文章,我对scala开始感兴趣的主要原因有两点:1)scala是 OO(面向对象)/FP(函数编程)的混杂体,我想任何把函数编程的理念引入到面向对象的世界都是很好的一件事。2)scala的actor库严重的受到 erlang的影响,scala有时作为一个伟大的构建可扩展的并行应用语言而被提及到,就像erlang一样。有 几次,我看到scala和erlang的比较资料。e 阅读全文

posted @ 2012-12-21 11:48 应无所住而生其心 阅读(1863) 评论(0) 推荐(0) 编辑

gen_fsm

摘要: from 老纪今天介绍erlang的一个非常重要的behaviour,就是gen_fsm-有限状态机,有限状态机的作用非常之多,比如文本解析,模式匹配、游戏逻辑等等方面的处理都是它的强项,所以这个behaviour非常之重要1. 有限状态机有限状态机可以用下面这个公式来表达State(S) x Event(E) -> Actions(A), State(S')表示的就是在S状态时如果有事件E发生,那么执行动作A后把状态调整到S’。理解很好理解,如果能够熟练应用必须得下苦功,多练习。2. 一个例子erlang手册中用这个例子来解释的:开锁问题,有一个密码锁的门,它就可以看作一个状态 阅读全文

posted @ 2012-12-21 11:47 应无所住而生其心 阅读(252) 评论(0) 推荐(0) 编辑

erlang-nif

摘要: NIF是Erlang OTP R13B03版引入的,在这一版中还只是一个实验特性,按照原计划,NIF在R14B版成为正式特性,相应的API也将在该版之后稳定下来。等不及了,先试试再说。1. 基本原理最大的好处是速度。Erlang程序的逻辑当然是用Erlang写的,速度上不能和C比。NIF使我们可以用C实现相同的程序逻辑, 而速度则是C的速度。简单的说就是将C实现的程序编译成动态共享对象(shared object)后动态加载到Erlang节点中,与Erlang共享内存空间,这与内联驱动(linked driver)有点类似,因此也就同样危险:有缺陷的代码会使整个Erlang节点当掉。此外,在N 阅读全文

posted @ 2012-12-21 11:28 应无所住而生其心 阅读(784) 评论(0) 推荐(0) 编辑

Erlang学习资源

摘要: Erlang语言绝对算得上是一种“小众”语言,但其未来的发展前景却是无法估量的,因 为它可以解决传统语言很难解决的并行计算中的难题。Erlang是一种函数式(变量只能赋值一次)、强类型、动态类型(变量类型在运行时决定,代码需要编 译后才能执行,与 Python,Ruby等不一样)、面向并发(Concurrency Oriented)的语言。最近实习的公司有个项目刚好要用Erlang来开发,对这个语言产生了强烈的兴趣,下面收集一些Erlang常用的学习资源:Getting Started with Erlang. 开始使用ErlangErlang Course. Erlang学习课程Best p 阅读全文

posted @ 2012-12-21 11:18 应无所住而生其心 阅读(95) 评论(0) 推荐(0) 编辑

Erlang NIF浅析

摘要: 在Erlang调用C代码时,NIF(Native Implemented Function)是比port driver更简单和有效的实现方式,尤其是编写同步程序中,NIF是非常适合Erlang 的。1, 基本原理NIF可以使我们可以用C实现相同的程序逻辑,但速度比用纯Erlang的快,跟C的速度很相近。C语言编译生成的动态库(*.so)在Erlang调用C模块时动态 加载到Erlang的进程空间中,所以这是用Erlang调用C代码最高效的方式。调用NIF不用上下文的切换开销,但是安全性不是很高,因为NIF的 crash会导致整个Erlang进程crash。2, 编程模式 在用NIF编程过程中, 阅读全文

posted @ 2012-12-21 11:17 应无所住而生其心 阅读(196) 评论(0) 推荐(0) 编辑

导航