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

Increase list size using list comprehension in erlang

A = [1,2,3]

输出应该是:

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

是否可以得到这样的输出?

是的,您可以在推导式中放入两个子句,并使第二个子句 return 两个元素对应第一个子句中的每个元素:

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 ,"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)]).