Я бы хотел сравнить элементы списков, глядя на указанные c элементы. Мои списки могут отличаться по некоторым пунктам, но могут быть одинаковыми в первых двух или также в последнем (времени), как показано ниже.
[(object 10) (owner 6) men 0.408 0.365 (time 3)]
и
[(object 10) (owner 6) men 0.408 0.364 (time 3)]
Используя следующий код:
to-report count-dupl [ a-list ]
let t_list remove-item 0 a-list
set shift_list lput [-999] t_list
let dup_count 0
(foreach my-list shift_list [ [ a b ] ->
show ( word " Comparing " a " to " b )
if ( item 0 a = item 0 b or item 6 a = b or item 6 a + 1 = b) [ set dup_count (dup_count + 1) ] ])
print word "Count duplicates: " dup_count
if-else ( dup_count > 0 ) [ report true ][ report false ]
end
, он не возвращает true, если первые два элемента или если фактор времени и фактор времени + 1 в двух списках являются дубликатами. Я хотел бы выбрать элементы, которые не являются последовательными, а также не настолько близкими по времени (то есть, которые отличаются по крайней мере на 1 или 2 такта - отметка 6).
Надеюсь, вы мне поможете.
Большое спасибо