2013-07-20 98 views
2

我是Erlang的新手,我正在嘗試編寫一些函數,它會返回給定N -> 2, 4, .... 2^N作爲列表的幾何級數。 我已經寫了一些代碼:Erlang:列表扁平化

-module(mymod). 
-export([create_list/1]). 

create_list(1) -> [2]; 
create_list(N) when N>1 -> 
    lists:flatten([create_list(N-1)]++[trunc(math:pow(2, N))]). 

它正常工作,直到29日,但我通過30多後返回相同的結果: [2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768, 65536,131072,262144,524288,1048576,2097152,4194304,8388608, 16777216,33554432,67108864,134217728,268435456,536870912|...]

也就是說,只有第29項。如何完成顯示?

回答

2

注意顯示列表末尾的[|...]。這意味着爲了達到漂亮的打印目的,它在Erlang shell的一段時間之後才被截斷。

強制打印整個列表的一種方法是調用io:format("~p~n", [create_list(30)])

+0

謝謝,工作:) –

3

您可以強制shell使用rp(create_list(30))打印整個結果。

0

或者如果你需要打印unicode字符串,試試io:format(「〜ts〜n」,[YourData])。