`
yinxvxv
  • 浏览: 51726 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

erlang牛的很啊

阅读更多

javaeye里面有人在搞erlang,我不知道这是什么,所以就google了一下.

原来这是又是一个开发语言.

试着做了个例子,是在javaeye上找的.

test.erl

-module(test).
-export([fac/1]).

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

 

执行了一下fac(100),本以为不会出现结果,因为100的阶乘太大,可谁知道屏幕上出现了

93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

 这么一长串数字.

 

然后好奇的执行了一下fac(1000),靠!太神了,屏幕上出现了

402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

 而且速度还快.

吓死人了!

 

 

试着在java里也写了一个一样的函数:

public class Test { 
private static int fac(int a){ 
if(a==0) return 1; 
else return a*fac(a-1); 
} 
public static void main(String[] args) { 
System.out.println(fac(31)); 
} 
}

 

类型为int的只能求到31的阶乘!

public class Test { 
private static long fac(long a){ 
if(a==0) return 1; 
else return a*fac(a-1); 
} 
public static void main(String[] args) { 
System.out.println(fac(49L)); 
} 
}

  

类型为long的可以到49!

 

我在想啊它们之间肯定是在实现上不一样,数据存储的结构不一样.

erlang在处理大数据的时候肯定有它独到的好处.

分享到:
评论
2 楼 yinxvxv 2012-12-04  

但是java BigInteger只能算到1100.而erlang100000以上是没有问题的  cool!!
1 楼 yinxvxv 2012-12-04  

当时技术太菜了,java可以用BigInteger 1000次也是小case!!!

相关推荐

    erlang:二郎课程

    Erlang的进程非常轻量,创建和销毁的开销很小。当进程因错误崩溃时,可以通过Supervisor树进行监控和自动重启,从而实现系统的容错能力。 ### 6. 分布式编程 Erlang内置支持分布式计算,可以轻松地在多台机器上...

    erlang-rust-nif:在 Rust 中实现的 Erlang NIF 示例

    Rust 中的 Erlang NIF 这是一个如何在 Rust 中实现 NIF 的示例。 它对我有用,也可能对你有用,但如果它吃掉了你的作业,请不要生气。 虽然这将是可行的写现实世界的代码下面这个例子,因为整个erl_nif.h接口可用...

    rabbitmq-server-3.7.13.exe和erlang-otp_win64_20.3.exe

    标题中的"rabbitmq-server-3.7.13.exe"和"erlang-otp_win64_20.3.exe"分别代表了两个关键组件,它们是构建和运行RabbitMQ服务器所必需的。RabbitMQ是一个开源的消息代理和队列服务器,广泛应用于分布式系统中的消息...

    ERLANG(2) RISK PROCESSES WITH CONSTANT DIVIDED BARRIER

    具有常红利边界的Erlang(2)风险过程,牛明飞,张国帅,本文考虑了索赔到达时间间隔服从Erlang(2)分布,且具有常数红利边界的风险过程,得到了Gerber-Shiu函数的一个积分-微分方程,并求出了该

    kai:Erlang KairosDB 客户端

    凯 Erlang 客户端 :warning: 在制品。 暂时不要使用。路线图/计划功能: 插入指标: 原始 tcp 客户端池(又名 ) 安排 ELB 友好的“ping”,防止企业防火墙杀死空闲连接检索指标和聚合: 包装器用于构建API设施基准/...

    asdf:可扩展的版本管理器,支持Ruby,Node.js,Elixir,Erlang等

    asdf:一个强大的版本管理工具,它允许用户在同一个系统上灵活地管理并切换不同软件的版本,包括但不限于Ruby、Node.js、Elixir和Erlang等编程语言的版本。这个工具的设计理念是简化多项目环境的配置,以及方便...

    14章MQ大牛成长课-从0到1手写分布式消息队列中间件

    RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、 安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性...

    秦牛(Qiniu SDK)for Elixir

    【秦牛(Qiniu SDK)for Elixir】是一个针对Elixir编程语言设计的SDK,旨在帮助开发者方便地集成七牛云服务,包括但不限于对象存储、CDN内容分发等功能。七牛云是一家提供云端存储和加速服务的公司,其SDK使得开发者...

    apress.coders.at.work

    这些访谈不仅为读者提供了宝贵的学习资源,也是一次与业界大牛进行思想交流的难得机会。 ### 访谈对象简介 - **Brendan Eich**:JavaScript 的创造者,Mozilla 基金会前 CEO。 - **Joshua Bloch**:Google 高级...

    Coders at Work

    书中,Seibel采访了15位顶级程序员,包括像Joe Armstrong(Erlang创造者)、Ken Thompson(UNIX之父)和Jamie Zawinski(Netscape早期开发者)等业界大牛。通过他们的视角,我们可以了解到编程不仅仅是一项技术技能...

    rabbitmq 详细介绍ppt

    RabbitMQ 的安装需要 Erlang 环境的支持,可以通过下载 Erlang 并安装,然后下载 RabbitMQ 并安装,最后安装 RabbitMQ-Plugins。 知识点5:RabbitMQ 核心基础概念 RabbitMQ 的核心基础概念包括生产者、消费者、消息...

    rabbitmq-server-3.7.13安装,官网下载的,因为官网下载慢,特此上传

    10. **最佳实践**:在生产环境中,推荐使用 Erlang 操作系统发行版,因为Erlang是RabbitMQ的基础语言,优化过的版本可以提供更好的性能和稳定性。同时,定期备份数据和监控节点健康状况也是必要的。 以上就是...

    hirelix:具有hiredis速度的实验性Elixir redis库

    这是对exredis的一种扩展,可以使用 erlang 绑定 (hierdis) 来获得exredis的速度。 要使用它,您必须将它添加到您的项目依赖项中。 { :exredis , github: " artemeff/exredis " , tag: " 0.1.0 " },{ :hirelix , ...

    cowbell-erl:Cowbell - Noddy 牛仔基准

    牛铃儿Cowbell - Noddy 牛仔吞吐量基准建造$ rebar get-deps compile$ relx跑步$ _rel/bin/cowbell foreground 使用您最喜欢的 http 基准测试客户端,例如 HTTP GET: $ siege -b -c 1 -r 100 ...siege -b -c 2 -r 100 ...

    STOMP协议详解1

    RabbitMQ,一个基于Erlang的消息代理,也通过插件支持STOMP。此外,还有各种语言的客户端库,如Ruby的onstomp,Java的Gozirra,Python的stompest,JavaScript的stomp.js,以及Go的stompngo等,它们使得开发者能够在...

    elixir-in-action

    OTP(Open Telecom Platform)是Erlang和Elixir生态系统中的基石,它提供了一系列的设计原则和库,如GenServer、Supervisor和Worker,用于构建分布式、容错的应用。 Elixir的文件系统操作和IO流处理也值得一提。...

    RabbitMQ集群-ActiveMQ集群集合

    RabbitMQ是一款基于AMQP协议的开源消息中间件,由Erlang编程语言实现,以其稳定性和灵活性受到广泛欢迎。在生产环境中,为了提高RabbitMQ的服务可用性和性能,通常会构建RabbitMQ集群。《RabbitMQ集群环境生产实例...

    esioci:esioci是新一代的持续集成系统

    7. **集成能力**:esioci 很可能与其他版本控制系统(如Git)、项目管理工具(如JIRA)和部署平台(如Docker)紧密集成,形成一个完整的开发运维(DevOps)生态系统。 esioci-master 文件名表明这是esioci项目的主...

Global site tag (gtag.js) - Google Analytics