0
我有一個Map (Int, Int) a
其中a
可以是任何類型。基於存儲在數組中的Tuple2作爲鍵我想創建一個存儲地圖值的String表。如何將Map的數據打印爲表格?
因爲Tuple2的最大值是已知的並且可能很大,所以我的第一個想法是創建一個具有默認值的可變2D數組。在迭代Map的條目時,可以填充該數組然後打印出來。帶有Map of Ints的僞代碼示例:
map = Map (Int, Int) Int
table = Array.ofDim (maxY, maxX) withDefaultValue 0
for ((x,y), int) <- map do
table[y][x] = int
end
rows = table.rows map toString
str = rows map (toString ++ lineEnd)
print str
唯一的問題是:我不知道如何在Haskell中執行此操作。此外,我不知道這是否是Haskell的首選方式。
我沒有找到好的例子如何在Haskell中使用2D數組,因此有人能給我一個嗎?如果有更好的方法來做到這一點,也許有一個內置的數據類型,如表,Matrix,2DStringBuilder等,有人可以告訴我一個例子如何使用它們?
通過不構建數組並在地圖中執行查找而不是索引到數組中,這同樣適用(儘管可能更慢)。 – augustss 2012-03-02 08:10:22