首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

快活的倒腾之try-catch学习

2012-12-19 
快乐的倒腾之try-catch学习-module(tryCatch).-export([generate/1, demo/0]).generate(1) - agenerate(

快乐的倒腾之try-catch学习

-module(tryCatch).-export([generate/1, demo/0]).generate(1) -> a;generate(2) -> throw(a);generate(3) -> exit(a); generate(4) -> {'exit', a};generate(5) -> erlang:error(a).demo()->    [catcher(I) || I<-[1,2,3,4,5,6]].catcher(N)->try generate(N) of    Val ->{N, normal, Val}        catch            throw:X ->        {N, caught, thrown, X};    exit:X  ->{N, caught, exited, X};    error:X ->{N, caught, error, X} end.    

?

运行结果:

6> tryCatch:demo().[{1,normal,a}, {2,caught,thrown,a}, {3,caught,exited,a}, {4,normal,{exit,a}}, {5,caught,error,a}, {6,caught,error,function_clause}]

?

基偶数列表查找

odds_and_evens(L)->    Odds=[X || X<-L, (X rem 2)=:=1],    Evens=[X||X<-L, (X rem 2)=:=0],    {Odds, Evens}.odds_and_evens_acc(L)->    odds_and_evens_acc(L, [], []).odds_and_evens_acc([H|T], Odds, Evens)->    case (H rem 2) of1->    odds_and_evens_acc(T, [H|Odds], Evens);0 ->    odds_and_evens_acc(T, Odds, [H|Evens])    end;odds_and_evens_acc([], Odds, Evens) ->    {Odds, Evens}.
?

?

运行结果:

51> tryCatch:odds_and_evens([1,5,6,8,4,15,42,43]).{[1,5,15,43],[6,8,4,42]}
?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

 

热点排行