1.列表解析。
1> L=[1,2,3,4] .
[1,2,3,4]
4> lists:map(fun(X) -> 2*X end,L).
[2,4,6,8]
5> [2*X || X <- L].
[2,4,6,8]
[F(X) || X <- L] 代表由F(X)组成的列表,X取值于列表L。||右边用于匹配列表L中元素的模式,左边是一个构造器。
右边模式匹配可以像过滤器一样操作,注意大小写的区别。
6> [X || {a,X} <- [{a,1},{b,2},{c,3},{a,4},hello,"wow"]].
[1,4]
7> [X || {A,X} <- [{a,1},{b,2},{c,3},{a,4},hello,"wow"]].
[1,2,3,4]
2.列表解析快速排序算法。
-module(lib_misc). -export([qsort/1]). qsort([]) -> []; qsort([Pivot|T]) -> qsort([X || X <- T, X < Pivot]) ++ [Pivot] ++ qsort([X || X <- T,X >= Pivot]).++中缀添加操作符 19> [1]++[2]++[3,4]. [1,2,3,4] 3.毕达哥拉斯三元组。
pythag(N) -> [{A,B,C} || A <- lists:seq(1,N), B <- lists:seq(1,N), C <- lists:seq(1,N), A+B+C =< N, A*A+B*B =:= C*C ].lists:seq(1,N)返回一个1到N组成的列表。 4.断言。 功能:断言是一种用于强化模式匹配功能的结构。 断言序列: 用分号(;)分开的集合,只要有一个True,整个序列就为True。 用逗号(,)分开的集合,必须都为true,整个断言序列才为true。 断言序列的合法语法形式:(表格,p43) 原子true,其他常量(条件,或者绑定变量)求值为false, 断言谓词或BIF(内建函数),比较表达式,算术表达式,布尔表达式,短路布尔表达式 布尔表达式中,orelse,andalso与 or/and 区别:and/or 需要对参数都进行求值。
上一篇: vim学习
下一篇: vim使用小技巧,在工作目录打开vim
0 Responses so far.