练习1:生成斐波那契数列!结果示例:【1,1,2,3,5】
练习2:
求列表元素平均值
!
练习3:
求
12+22+32+42+52+…+n2
。
练习4:
将两个列表连接起来
。
练习5:快速排序。
-module(myEx1).
-export([fabonacii/1,
average/1,
sum_square/1,
concat/2
]).
%%%练习1:生成斐波那契数列
%%%结果示例:[1,1,2,3,5]
element(1) -> 1;
element(2) -> 1;
element(N) -> element(N-1) + element(N-2).
fabonacii(N) -> fabonacii(N,[]).
fabonacii(0,L) -> L;
fabonacii(N,L) -> fabonacii(N-1,[element(N)|L]).
%%练习2:求列表元素平均值
sum([]) -> 0;
sum([H|T]) -> H + sum(T).
num([]) -> 0;
num([_H|T]) -> num(T) +1.
average([]) -> 0;
average(L) -> sum(L) / num(L).
square(X) -> X * X.
sum_square(0) -> 0;
sum_square(N) -> square(N) + sum_square(N-1).
%%%练习4:将两个列表连接起来。
%%%将列表L1和L2连接起来,将L2的元素依次插入L1的前面
reverse(L) -> reverse(L,[]).
reverse([],L) -> L;
reverse([H|T],L) -> reverse(T,[H|L]).
concat(L1,L2) ->re_concat(L1,reverse(L2)).
re_concat(L,[]) -> L;
re_concat(L,[H|T]) -> re_concat([H|L],T).
%%%练习5:快速排序。
qsort([]) -> [];
qsort([Pivot|T]) ->
qsort([X || X <- T, X < Pivot])
++ [Pivot] ++
qsort([X || X <- T, X >= Pivot]).