2013-02-20 23 views
2

好了,所以這裏有雲:二郎名單:地圖舉止奇怪

我有這樣的一段代碼:

A=lists:map(fun(Result) -> Result#o.prop1 
    end, ResultList), 
B=lists:map(fun(Result) -> io:format("~p~n",Result#o.prop2), 
    Result#o.prop2 
    end, ResultList), 
io:format("~p ~p",[A,B]) 

在此之前的一段代碼,有一個從數據庫結果列表搜索(每個結果具有標記爲「0」的prop1值和標記爲「74」的prop2值)。

會發生什麼是A打印正確(「[0,0]」),而B元素的第一個打印是正確的(兩個打印「74」)列表本身打印爲「JJ」 (這些字符總是不同的每個執行)

如果我通過元件打印刪除元素,或者即使我切換順序(B的線,然後A的線)我總是一個弄亂B.

任何幫助?

+0

B以什麼方式搞砸了?我建議你發佈一個混亂輸出的例子。 – JosefAssad 2013-02-20 18:26:09

回答

3

您看到J而不是74的原因是由於Erlang將字符串視爲整數列表,而J是74(十進制)的ASCII碼。

1> io:format("~s~n", [[74, 74]]). 
JJ 
ok 
2> io:format("~s~n", [[71, 72, 73, 74, 75]]). 
GHIJK 
ok 
3> io:format("~p~n", [[71, 72, 73, 74, 75]]). 
"GHIJK" 
ok 
+0

像這樣打印它解決了它: io:format(「〜p〜p」,[[a | A],[b | B]]) – 2013-02-25 17:00:14