我試圖在Clojure中創建一個人口稀少的多維向量,但是我正在抵抗我的知識極限。clojure中人口稀少的多維向量?
我有一個集合x
我遍歷,我想通過(count x)
創建一個大小(count x)
的多維向量。大多數單元格都是空的,但是在x軸和y軸匹配的每個點(例如(1 1),(2 2),(3 3)等),我需要運行函數來查看是否應該把價值放在這個空間裏。
在程序語言,這將是這樣的:
for (i = 0; i < length(x); i++) {
for (j = 0; j < length(x); j++) {
if (i == j && testReturnsTrue(x[i])) {
table[i][j] = (list x[i])
}
else {
table[i][j] =()
}
}
}
但我不能換我的頭圍繞如何,這將在Clojure中來完成。我試圖使用嵌套的理解和嵌套循環復發結構,但我無法得到任何工作。
或者,我可以創建一個具有正確大小的可變表,將它初始化爲空列表,然後設置值作爲我檢查x
中的每個元素,但是我希望在可能的情況下保持表不變。
FWIW「疏」是指東西,顯然混淆大家誰的回答。如果你的矢量稍後將被填滿並且只是稀疏*現在*,那麼面向稀疏的技術就沒有多大意義。我建議你改變或澄清問題。 – amalloy 2011-04-29 16:57:55