erlang中的两种迭代方法-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 99969
  • 博文数量: 18
  • 博客积分: 681
  • 博客等级: 中士
  • 技术积分: 295
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-17 13:33
文章分类
文章存档

2012年(8)

2011年(10)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: python/ruby

2012-09-16 20:24:54

在erlang中没有类似while,for这样的循环语句,需要使用递归来替代。在循环中使用递归主要有以下两种方法,详细情况请参考,下面以一段对列表求和的函数来说明:

方法一

方法二

示意代码:

sum([]) ->

        0;

sum([h|t]) ->

        h sum(t).

示意代码:

sum(list) ->

        sum_help(list, 0).

sum_help([], sum) ->

        sum;

sum_help([h|t], sum) ->

        sum_help(t, h sum).

求和步骤:

sum([1,2,3,4,5])

1 sum([2,3,4,5])

1 2 sum([3,4,5])

1 2 3 sum([4,5])

1 2 3 4 sum([5])

1 2 3 4 5 sum([])

1 2 3 4 5 0

1 2 3 4 5

1 2 3 9

1 2 12

1 14

15

求和步骤

sum([1,2,3,4,5])

sum_help([1,2,3,4,5], 0)

sum_help([2,3,4,5], 1)

sum_help([3,4,5], 3)

sum_help([4,5], 6)

sum_help([5], 10)

sum_help([], 15)

15

要点:

1. 递归方法求和,程序简单容易理解;

2. 尾递归可以被编译器优化。

要点:

1. 使用一个额外参数来存放求和中间结果;

2. 效率高。


阅读(3302) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

2012-11-03 14:46:05

isograph_avsim_v10.0

adina系列产品:
adina.v8.8.1

crocodile.technology.v609  系统控制仿真软件

esteco.modefrontier.v4.3.0 20101110 优化设计

eta系列:
eta.cad.translator.v1.200704
eta.vpg.v3.3 汽车整车仿真软件
eta_dynaform_v5.6(多语言版,包括中文)
(dynaform 是eta开发的用于板料成形模拟的软件包。针对板料冲压的工艺特点,开发了方便高效的前后处理器,极大地缩短

了模型准备的周期。求解器采用ls-dyna,基于增量法有限元理论,分析结果准确可靠。dynaform可以模拟预压边、拉延、翻

边、弯曲、多工步成形等工艺过程,能够预测板料起皱、拉裂、回

|
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图