码迷,mamicode.com
首页 > 其他好文 > 详细

Erlang 基础操作 练习题

时间:2015-03-13 01:40:25      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

 1 %    ******************************************************************************
 2 %    ------------------------------------------------------------------------------
 3 %    习题 5
 4 %         合并列表,A=[{a,1},{b,2},{c,3},{b,1}],B=[{b,4},{c,5},{d,6},{d,2}].
 5 %            结果:[{a,1},{b,7},{c,8},{d,8}]
 6 %        D=[{a,3},{f,14},{k,39},{f,22},{g,88},{d,23}].
 7 %    把B列表合并到A列表,新增的放后面,不能用++
 8 %    ------------------------------------------------------------------------------
 9 
10 
11 test5( A, B )  ->
12     M = test5a_2( A,[] ),
13     test5a_2( B, M ).
14 
15 test5a_1( E, [Th|T], F, R ) ->
16     {Flag,V} = match(E ,Th),
17     test5a_1( E, T, Flag or F, [V|R] );
18 test5a_1( E, [], F, R ) ->
19     case F of
20         true  ->
21             R;
22         false ->
23             [E|R]
24     end.
25 
26 test5a_2( [Th|T], R ) ->
27     M = test5a_1( Th, R, false, [] ),
28     Mr= lists:reverse(M),
29     test5a_2( T, Mr ) ;
30 test5a_2( [], R ) ->
31     R.
32 
33 
34 %    匹配成功,返回处理后的值,失败返回匹配B值
35 match( {Nam,ValA}, {Nam,ValB} )  ->
36     { true, {Nam,ValA+ValB} } ;
37 match( _, Th )  ->
38     { false, Th }.

 

Erlang 基础操作 练习题

标签:

原文地址:http://www.cnblogs.com/iclod/p/4334119.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!