【发布时间】:2018-10-01 15:37:15
【问题描述】:
A = [1,2,3]
输出应该是:
[1,one,2,two,3,three]
有没有可能得到这样的输出?
【问题讨论】:
-
您可以使用这里描述的过程stackoverflow.com/questions/1684431/…
标签: erlang
A = [1,2,3]
输出应该是:
[1,one,2,two,3,three]
有没有可能得到这样的输出?
【问题讨论】:
标签: erlang
是的,您可以在推导式中放置两个子句,让第二个子句为第一个子句中的每个元素返回两个元素:
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"]
【讨论】:
three 与整数3 没有内在关系。
我认为最后一个代码的输出是
[[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)]).
【讨论】: