所謂畢達哥拉斯三元陣列就是描述三角形三角邊,滿足AA +BB =C*C;
bdgls(N) ->
[
{A,B,C} ||
A <- list:seq(1,N),
B <- list:seq(1,N),
C <- list:seq(1,N),
A+B<C,
A*A +B*B = C*C
].
簡單解釋一下,A,B,C從(1,N)中取,滿足A+B<C且AA+BB=C*C的要求即可。
所謂迴文構詞就是探索字串的字元所能組成的排列方式。構詞
perms([]) -> [[]];
perms(L) -> [H|T || H <- L,T <- perms(L--[H])].
L-- [H] 是列表移除操作符,將元素H從列表中L移除
H<-L 從L中取出元素H
總體來說就是抽掉L中的某一元素,對剩下的元素進行排列組合然後再講H放進去,以此類推。
程式只遍歷列表一次,能將程式列表中的元素按奇偶數分開並放入新列表中,這種列表叫做收集器
odds_evens_nums(L)->
odds_evens_nums(L,[],[]).
odds_evens_nums([H|T],odds,evens) ->
case (H rem 2) of
1 -> odds_evens_nums(T,[H|odds],evens);
0-> odds_evens_nums(T,odds,[H|evens])
ends;
odds_evens_nums([],odds,evens) ->
{odds,evens}.
這裏最後的時候最好將結果反轉一下list:reverse(odds).