У меня есть последовательность отсортированных данных и хочу установить соседний флаг. например, для следующих данных, для любого элемента, если у какого-либо соседа есть флаг как 1, тогда установите с любым соседом, помеченным как 1 для этого элемента. Мы могли бы определить соседа, как разность seq равна < = 2, если diff < = 2, то они соседние. Может быть миллион точек данных.как обрабатывать отсортированные данные в clojure эффективно?
(def a '({:seq 1 :flag 1} {:seq 2 :flag 0} {:seq 5 :flag 0} {:seq 8 :flag 0} {:seq 10 :flag 1} {:seq 12 :flag 1}))
ожидаемый результат:
({:seq 1 :any-neighbor-flagged 0} {:seq 2 :any-neighbor-flagged 1} {:seq 5 :any-neighbor-flagged 0} {:seq 8 :any-neighbor-flagged 1}
{:seq 10 :any-neighbor-flagged 1} {:seq 12 :any-neighbor-flagged 1})
@noisesmith Выход не был поддельным, он был вставлен из REPL. Но на самом деле это была ошибка. Я исправил это. – Jarlax
@noisesmith Также вы ошибаетесь в отношении 'или' macro:' (или 0 0) => 0, (или 1 0) => 1, (или 1 1) => 1'. Только проблема заключалась в '(или 0 1) => 0' вместо 1. – Jarlax
Я вижу, что теперь да, извинения за обвинение. – noisesmith