【列表构造】
1.已知模块t有如下方法
t(L, {b, B}) ->
[{A, B} || {A, {b, B}} <- L].
shell: t:t([{1,{b,2}},{2,{b,3}},{3,{b,3}},{4,{b,3}}],{b,3}).
问: 请写出返回值
2.已知模块t有如下方法
t(L, {b, B}) ->
[{A, B} || {A, {b, B}} <- L,B =:= B].
shell: t:t([{1,{b,2}},{2,{b,3}},{3,{b,3}},{4,{b,3}}],{b,3}).
问1: 指出表达式 B=:=B 中B的值
问2: 请写出返回值
3.已知模块t有如下方法
t(B, B1, B2) ->
[{B1,B2} || B1 =:= B2, {B1, B2} <- B].
shell_1: t:t([{1,2},{1,1}],1,1).
shell_2: t:t([{1,2},{1,1}],5,6).
问1: 请写出 shell_1 的返回值
问2: 请写出 shell_2 的返回值
4.已知模块t有如下方法
t(List,X) ->
[{A,X} ||
begin
io:format("X=~p ~n",[X]),
true
end,
{A,X} <- List,
begin
io:format("X=~p ~n",[X]),
true
end].
shell: t:t([{1,2},{3,4}],3).
问1: 执行以上shell会输出什么?
问2: 请写出返回值
5.表达式求值
[{X,Y} || X<-[1,2,3],Y<-[X+1],Y rem 2 == 0].
A. [{1,2},{3,4}]
B. [{1,2},{1,3},{1,4}]
C. [{1,2},{2,3}]
D. Throw Execption