【erlang】语法面试题 (持续补充)

【列表构造】

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

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值