分类: 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. 效率高。 |
最大行业软件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可以模拟预压边、拉延、翻
边、弯曲、多工步成形等工艺过程,能够预测板料起皱、拉裂、回