0
創建傳感器我怎麼會從以下普通代碼,其中combo
是clojure.math.combinatorics
別名創建一個轉換器:普通代碼
(defn row->evenly-divided [xs]
(->> (combo/combinations (sort-by - xs) 2)
(some (fn [[big small]]
(assert (>= big small))
(let [res (/ big small)]
(when (int? res)
res))))))
正如評論指出的換能器只適用於處理每個項目。有了這一點,我已經通過改變排序使代碼變得更加友好,因此現在每個項目都已經完成了。然而,我不認爲有什麼可以做的關於組合部分!
(defn row->evenly-divided [xs]
(->> (combo/combinations xs 2)
(some (fn [xy]
(let [res (apply/(sort-by - xy))]
(when (int? res)
res))))))
我認爲這是一個有點尷尬適用於此換能器,如果你想將所有'combinations'一步,'sort'步驟和「均分」步驟進入一個過程。要創建組合並對其進行排序,需要遍歷整個列表並與其他項目配對。傳感器假設每個物品在累積之前都被單獨處理。除此之外,國際海事組織,這裏的「一些」在性能方面表現完美。 –