將乙個數字列表由小到大進行排序
%% list.erl
-module
(list).
-export([
sortnum/1
]).%% 對純數字列表排序:從小到大
%% num:當前的數字,列表中第乙個數字
%% list:取出第乙個數字後,其餘的列表
sortnum([
num|
list])
->
%% 通過列表推導,找到比當前數字小的數字列表
sortnum([
x||x
<
-list,x
<
num]
)%% 把當前的數字,放在比自己小的數字列表後邊++[
num]
++%% 通過列表推導,找到比當前數字大的數字列表
sortnum([
x||x
<
-list,x
>=
num]);
%% 排序結束
sortnum([
])->
.
>
erl>
list
:sortnum([
4,8,
5,2,
1]).
[1,2
,4,5
,8]
呼叫list:sortnum([4,8,5,2,1]).
sortnum([
4|[8
,5,2
,1]]
)->
%% 通過列表推導,找到比4小的數字列表,得到列表[2,1],等於 `sortnum([2, 1])`
sortnum([
x||x
<-[
8,5,
2,1]
,x<4]
)%% 把4放在比自己小的數字列表後邊++[
1]++%% 通過列表推導,找到比4大的數字列表,得到列表[8,5],等於 `sortnum([8,5])`
sortnum([
x||x
<-[
8,5,
2,1]
,x>=4]
);
呼叫sortnum([x || x <- [8,5,2,1], x < 4])
,等於sortnum([2, 1])
sortnum([
2|[1
]])-
>
%% 通過列表推導,找到比2小的數字列表, [1], 呼叫 sortnum([1])
sortnum([
x||x
<-[
1],x
<2]
)%% 把2放在比自己小的數字列表後邊++[
2]++%% 通過列表推導,找到比2大的數字列表, 得到列表 , 呼叫 sortnum()
sortnum([
x||x
<-[
1],x
>=2]
);
呼叫sortnum([x || x <- [1], x < 2])
,等於sortnum([1])
sortnum([
1|])
->
%% 通過列表推導,找到比1小的數字列表, 得到列表 , 呼叫 sortnum(),返回
sortnum([
x||x
<-[
],x<1]
)%% 把8放在比自己小的數字列表後邊++[
1]++%% 通過列表推導,找到比1大的數字列表, 得到列表 , 呼叫 sortnum(),返回
sortnum([
x||x
<-[
1],x
>=1]
);
呼叫sortnum([x || x <- [8,5,2,1], x >= 4])
,等於sortnum([8,5])
sortnum([
8|[5
]])-
>
%% 通過列表推導,找到比8小的數字列表, 得到列表 [5], 呼叫 sortnum([5])
sortnum([
x||x
<-[
5],x
<8]
)%% 把8放在比自己小的數字列表後邊++[
8]++%% 通過列表推導,找到比8大的數字列表, 得到列表 , 呼叫 sortnum(),返回
sortnum([
x||x
<-[
5],x
>=8]
);
呼叫sortnum([x || x <- [5], x < 8])
,等於sortnum([5])
sortnum([
5|])
->
%% 通過列表推導,找到比8小的數字列表, 得到列表 , 呼叫 sortnum(),返回
sortnum([
x||x
<-[
],x<5]
)%% 把5放在比自己小的數字列表後邊++[
5]++%% 通過列表推導,找到比8大的數字列表, 得到列表 , 呼叫 sortnum(),返回
sortnum([
x||x
<-[
],x>=5]
);
流程5
返回[5]
流程4
等於流程5
++[8]
,結果[5]
++[8]
=[5, 8]
流程3
返回[1]
流程2
等於流程3
++[2]
,結果[1]
++[2]
=[1, 2]
流程1
等於流程2
++[4]
++流程4
,結果[1, 2]
++[4]
++[5, 8]
=[1,2,4,5,8]
有乙個列表,裡面的元素是商品的名字和**,從高到低排序
list=[
,,,,
,,,]
Erlang 十一 列表推導
使用特定的列 式來處理列表 f x x l f x x l x 0 l待處理的列表 x列表中的乙個元素 f對x的處理函式 x 0是否處理列表元素的判斷。如果x小於等於0,跳過處理 已知列表 1,2,3,4,5 得到每個元素乘以2後的新列表 純數字組成的陣列 list 1,2,3,4,5 1,2,3,...
用列表推導的方式實現多個列表合併!!!
在使用 裝飾器的時候,我遇到了乙個函式傳參的問題,我想把 args裡面的list進行合併,而且我想通過列表推導來解決這個問題。查詢了一下網上,沒有人用這種方法解決。只知道可以通過c a b或者extend的方式。因為受到了列表推導雙for的誤導,我一直考慮通過兩個for迴圈的列表巢狀來解決這個問題。...
Python利用遞迴函式和列表推導式實現快速排序
python 基礎知識 遞迴函式 函式在內部呼叫自身,這個函式就是遞迴函式 計算1 n的整數之和 sum n n 1 n 1 1 1 def fact n if n 1 return 1 return n fact n 1 n 10s fact 10 print r n1 s的整數之和是 s n,s...