Erlang
文章平均质量分 74
铿锵玫瑰
这个作者很懒,什么都没留下…
展开
-
Erlang基本数据类型
1. 整数 Integer Erlang可表示任意大的整数,大整数自动转换成bignums类型,比固定大小的整数类型相对效率较低。 Base#Value 表示基数不是10的整数。如:2#1010 -16#EA #Character 表示字符的ASCII码。如:$a $\n2. 浮点数 Float3. 基元 Atom:表示文字常量 相原创 2013-01-03 12:36:53 · 1170 阅读 · 0 评论 -
Erlang随机数生成一注双色球
-module(double_ball).-export([ get_double_ball/0 ]).%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%随机生成一注双色球 %%%%jddge-判断一个数字是否在当前的红色球列表中 %%%%get_red-获取6个原创 2013-08-27 10:07:24 · 1804 阅读 · 1 评论 -
Erlang大量数据的存储机制:ETS和DETS
1. ETS和DETS简介:ETS(Erlang Term Storage )和DETS(Dist ETS)是Erlang用于高效存储大量Erlang数据条目的系统模块。ETS与DETS的比较:相同:ETS和DETS都提供大型的“键-值”搜索表。不同:ETS驻留在内存,DETS驻留在硬盘。ETS存储是临时的,DETS中的数据存储是持久的。ETS原创 2013-08-15 15:32:09 · 4499 阅读 · 1 评论 -
Erlang list的++操作和append函数的底层实现
当提到Erlang中list的++操作符时,我们常会想到它的性能问题。有些人知道++操作比较耗时,就改用函数append来代替。到底++操作和append函数之间有什么区别?我们来查看一下它们在Erlang源码及C源码中的实现。在$ERL_TOP/lib/stdlib/src/lists.erl可以找到如下代码:[plain] view plai转载 2013-08-27 15:53:14 · 1465 阅读 · 0 评论 -
erlang生成N个不重复的随机数_方案比较
原文:http://blog.csdn.net/shallowgrave/article/details/8500246生成N个不成重复的随机数方案一:最简单,用tuple来组织,将一个有序的整数列表通过shuffle方法打乱即可,比如生成100个无重复随机数, 用四进制8位表示,可以组织0~99,然后打乱即可。{RandNo, 99}, {RandNo,98},转载 2013-08-27 11:21:50 · 1353 阅读 · 0 评论 -
Erlang并发编程1
在Erlang里: 1,创建和销毁进程非常迅速 2,进程间发送消息非常迅速 3,在所有的操作系统间进程行为一致 4,可以创建大量的进程 5,进程之间不共享任何数据,彼此完全独立 6,进程间交互的唯一方法是消息传递并发原语:共3个Pid = spawn(Fun). 创建一个并发进程Pid ! Message 向进程原创 2013-08-26 15:36:58 · 1155 阅读 · 0 评论 -
Erlang并发编程2
原文:http://erlang.group.iteye.com/group/wiki/1442-programming-erlang-reading-notes-8-concurrency-programming自定义让当前进程sleep T毫秒的方法 Java代码 sleep(T) -> receive after T ->转载 2013-08-27 16:25:58 · 971 阅读 · 0 评论 -
关于Erlang的binary
原文:http://cryolite.iteye.com/blog/15472521. binary数据是可以在不同进程间共享的 当然这些进程都在同一Erlang节点上。 这与普通term不同,后者作为消息在进程间传递时是要在接收进程中做拷贝的(当然atom数据例外,它们也不会做拷贝)。摘一段原文在这里: All data in messages between Erlang转载 2013-08-28 11:15:52 · 1043 阅读 · 0 评论 -
Erlang的Json库
Erlang的JSON库关键字: erlang json 使用下列JSON库: http://www.lshift.net/blog/2007/02/17/json-and-json-rpc-for-erlang 该JSON库采用Joe Armstrong prefered Data type mapping JSON Obj = type obj() = {转载 2013-09-06 09:55:02 · 4216 阅读 · 0 评论 -
Erlang动态创建XML
下面我们从CSV文件数据源动态创建一个XML:shopping.csv 的内容:bread,3,2.50milk,2,3.50要创建的XML如下: 动态创建XML,并将生成的XML写入shop.xml文件中:xml_test.xml的内容:-module(xml_test).-include_lib("xmerl/include/xmerl.h原创 2013-08-30 14:18:15 · 1349 阅读 · 0 评论 -
Erlang的atom
Erlang中atom数据类型能够做的唯一的运算就是比较;在erlang中模块名和方法名都是原子;Atom用来构造Tag-Message,Atom的比较时间是常量的,与Atom的长度无关;(如果拿binary做tag,比较时间是线性的);Atom就是为比较而设计,除了比较运算不要把Atom用在别的运算中. Erlang M-F-A方法调用可以做的非常灵活,我们在sh原创 2013-08-30 17:35:45 · 1746 阅读 · 0 评论 -
Erlang的lists操作(详细)
-。- 收集的。官方doc也不尽详细呢。。一,带函数Pred1, all(Pred, List) -> boolean()如果List中的每个元素作为Pred函数的参数执行,结果都返回true,那么all函数返回true,否则返回false例子:lists:all(fun(E) -> true end,[1,2,3,4]).结果true转载 2013-09-02 11:39:44 · 4206 阅读 · 0 评论 -
Erlang学习资料
原文:http://blog.csdn.net/thomescai/article/details/75897791.Web:nitrogen:基于事件的Web开发框架。http://nitrogenproject.com/。http://yaws.hyber.org/http://github.com/mochi/mochiwebhttp://so转载 2013-09-02 13:52:59 · 1016 阅读 · 0 评论 -
Erlang的Xml解析
Erlang的Xml解析常用函数:xmerl_scan库:string(Text::list()) -> {xmlElement(), Rest} 将字符串列表,解析成XML树xmerl_xpath库:string(Str, Doc) -> [docEntity()] | Scalar 根据XPath,从已经解析好的XML树中提取出节点基础练习:原创 2013-08-29 18:03:11 · 1750 阅读 · 0 评论 -
Erlang的xml转换
概要:Erlang中xml的使用方法。 由于Erlang中数据的转换可以采用从tuple直接转成xml。 格式:{Tag, Attributes, Content} {节点名,属性,元素} {Tag, Content}TagIOString说明:Tag = a转载 2013-09-02 13:41:33 · 1322 阅读 · 1 评论 -
Erlang学习资源
转载:http://www.cnblogs.com/cobbliu/archive/2012/03/10/2388556.htmlErlang语言绝对算得上是一种“小众”语言,但其未来的发展前景却是无法估量的,因为它可以解决传统语言很难解决的并行计算中的难题。Erlang是一种函数式(变量只能赋值一次)、强类型、动态类型(变量类型在运行时决定,代码需要编译后才能执行,与 Python,Ru转载 2013-08-26 17:11:49 · 789 阅读 · 0 评论 -
Erlang函数学习
Erlang的普通函数和匿名函数fun:范例1:以下函数列出商品的价格。该函数包含5个子句,各个子句之间由分号;分隔。 要在函数所在模块之外使用该函数,应该在-export中导出改函数。-module(shop).-export([cost/1]).cost(oranges) -> 5;cost(newspaper) -> 8;原创 2013-08-07 18:04:36 · 896 阅读 · 0 评论 -
Erlang编程实战1
练习1:生成斐波那契数列!结果示例:【1,1,2,3,5】练习2:求列表元素平均值!练习3:求12+22+32+42+52+…+n2。练习4:将两个列表连接起来。练习5:快速排序。-module(myEx1).-export([ fabonacii/1, average/1, sum_square/1, concat/2原创 2013-08-23 14:30:50 · 982 阅读 · 0 评论 -
Erlang的模式匹配
1. 模式匹配: Pattern = Expression 模式(Pattern):由绑定或未绑定的变量,以及字符量(如基元atom,整数,或字符串)组成。 表达式(Expression):包括数据结构,绑定的变量,数学运算和函数调用。Expression不能包含未绑定的变量。2. 模式匹配的结果有两种: 匹配成功:未绑定变量编程绑定变量。 匹配失败:没原创 2013-01-08 23:32:08 · 1949 阅读 · 0 评论 -
erlang开发环境及开发工具配置
一、相关资料Erlang 的官方网站是http://www.erlang.org.其左侧的连接指出了我们可以从这里获取的资源。其中,Downloads 连接可以下载到所有版本的Erlang.Links 是一些其它资源的链接Enhancements 是一些Erlang的增强功能Getting Started 是教学Documenta转载 2013-08-20 09:50:33 · 1187 阅读 · 0 评论 -
Erlang简介
Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适合于构建分布式,实时软并行计算系统。 使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。进程间上下文切换对于Erlang来说仅仅只是一两个环节,比起C程序的线程切换要高效得多得多了。 使转载 2013-08-20 11:29:51 · 775 阅读 · 0 评论 -
Erlang工作路径
Erlang工作路径:1. 默认工作路径: (1)对于Windows用户来说,用户点击Erlang图标启动的Erlang Shell 工作路径是Erlang安装目录下的usr目录下。 将写好的aaa.erl文件放在/usr下,就可以在Erlang shell下使用 c(aaa)命令进行编译。 (2)如果用户在命令行模式下使用erl命令执行erl.原创 2013-08-07 11:55:05 · 2418 阅读 · 0 评论 -
Erlang列表解析
列表解析是一种无须使用fun,map或filter来创建列表的表达式,他能使代码更加简洁,更加容易理解。如:1>L= [1,2,3,4].2>lists:map(fun(X)->2*X end,L).这一功能可用列表解析来实现:[2*X || X记号[F(X) || X 列表解析最常见的形式:[X || 条件1,条件2,...]如:1>[X || {a原创 2013-08-08 13:08:22 · 2266 阅读 · 0 评论 -
Erlang的记录record
使用元组编程时,如果元组的元素数量非常庞大,我们很难记住元组中每个元素的含义。记录record就提供了一个方法把一个名称与元组中的一个元素对应起来。记录的定义:-record(Name,{ key1 = Default1, key2 = Default2, key3, %原创 2013-08-08 14:07:17 · 4420 阅读 · 0 评论 -
Erlang的case/if表达式
case表达式case Expression of Pattern1 [when Guard1] -> exp1; Pattern2 [when Guard2] -> exp2; ...end.使用case表达式,可以增强代码的可读性,简化代码结构。举例:1. 过滤函数filter(P,L) 使用模式匹配定义filter原创 2013-08-08 14:37:09 · 1002 阅读 · 0 评论 -
Erlang开发环境:Erlide和ErlyBird
Erlang的开发平台很少,做JAVA开发的人做Erlang开发,肯定会怀念eclipse中的快捷键操作,配置调试,语法高亮等。Erlide则是这么一款基于eclipse 的erlang开发插件。安装步骤如下:1.安装erlang开发环境(版本至少为R13B-5)2.安装eclipse3.eclipse-->help--->install new Software ,填入安转载 2013-08-20 16:51:28 · 1597 阅读 · 0 评论 -
Erlang安装 /开启关闭 /配置开发环境 /运行程序
目录:1. Erlang安装2. 开启和停止Erlang shell3. 配置开发环境4. 运行程序的几种方法1. Erlang安装(1). 二进制发布版(此处不做介绍)(2). 从源代码安装Erlang:$ tar -xzf otp_src_R15B-4.tar.gz 解包 [tar -xzf的意思是解压并解包一个文件,这个文件应该原创 2013-08-09 16:26:15 · 4463 阅读 · 0 评论 -
进入Erlang世界
Erlang是什么Erlang是什么是我们最先要面对的问题,只有清楚了它是什么,我们才能做出我们的决定。可见这个问题的重要性,它决定了很多读者是否会继续看下去!非常紧张。Erlang最初是爱立信为开发电信相关产品而产生。Erlang是一种面向并发(Concurrency Oriented),面向消息(Message Oriented)的函数式(Functional)编程语言。面向并转载 2013-08-22 13:09:06 · 911 阅读 · 0 评论 -
Erlang里的make
Erlang自带一个make工具 我们看一个例子 目录结构: Java代码 --Emakefile -include --test.hrl -src --test.erl -ebin Emakefile: Java代码 {'src/*', [{i, "include"}, {转载 2013-08-22 11:34:03 · 1172 阅读 · 0 评论 -
Erlang的Emakefile文件备忘
转自:http://cryolite.javaeye.com/blog/192069Erlang有个类似Makefile的文件Emakefile负责编译erl程序,说明文档在此 格式是 Erlang代码 {Modules, Options}. 其中Modules是一个atom,或者是一个atom的列表。 这些atom 可以是一个模块名转载 2013-08-22 17:17:33 · 724 阅读 · 0 评论 -
Erlang技巧备忘
1、and or 和andalso orelse的区别and和or会计算两边的表达式,而andalso和orelse的求值采用短路机制,比如exp1 andalso exp2,当exp1返回false之后,就不会去求值 exp2,而是直接返回false,而exp1 and exp2会对exp1和exp2都进行求值,or与orelse也类似。2、在Erlang中小于等于是用=转载 2013-08-22 17:01:09 · 1630 阅读 · 0 评论 -
Erlang编程实战2
练习1:求和!代码:-module(myEx2).-export([ sum/2 ]).sum(1) ->1;sum(N) -> sum(N-1) +N.sum(N,M) -> if N = sum(M) - sum(N) + N; true ->原创 2013-08-23 16:10:26 · 878 阅读 · 0 评论 -
Erlang实现排序算法
使用Erlang实现简单的排序算法:快速排序,冒泡排序,插入排序-module(list_sort).-export([qsort/1, bubble_sort/1, insert_sort/1 ]).qsort([]) -> [];qsort([Pivot|T]) -> qsort([X || X <- T,X < Piv原创 2013-09-06 14:21:27 · 1366 阅读 · 0 评论