使用erlang中的列表理解来增加列表大小

时间:2018-09-20 19:14:25

标签: erlang

A = [1,2,3]

输出应为:

[1,one,2,two,3,three]

是否有可能获得这样的输出?

2 个答案:

答案 0 :(得分:4)

是的,您可以在理解中放入两个子句,并使第二个子句为第一个子句的每个元素返回两个元素:

1> F = fun
1>   (1) -> "one";
1>   (2) -> "two";
1>   (3) -> "three"
1> end.
#Fun<erl_eval.6.127694169>
2> [B || A <- [1, 2, 3], B <- [A, F(A)]].
[1,"one",2,"two",3,"three"]

答案 1 :(得分:0)

我认为最后一个代码的输出结果是

 [[1 ,"one"] , [2, "two"] , [3 , "tree"]].

一些正确答案将会

  lists:append([begin T = case I of
                            1 -> "One" ;
                            2->"Two";
                            3->"Three"; 
                            _ -> "" end ,
                      [I ,T] end
               || I <- lists:seq(1,3)]).