Короткий и резкий:
Учитывая две логические утверждения, что это самый простой способ вычислить уравнение их пересечения в языке, как Lua?Действуя на абстрактных фильтров (список постижение): Объединение двух фильтров
(Красный = фильтр 1, Синий = фильтр 2, Фиолетовый = Область пересечения)
Длинные и причитала:
Фильтр A:
object.ID < 300
Фильтр B:
object.ID < 600
Фильтр A является подмножества из Фильтра Б, то есть: фильтр Б будет содержать все согласованное с Фильтром A, плюс 0 или более объектов. На диаграмме Венна, Фильтр A будет внутри Фильтр B.
Как вычислить уравнение площади пересечения?
Более сложный пример:
- Фильтр Х:
object.Col == 'GREEN' and (object.ID == 2 or object.ID == 64 or object.ID > 9001)
- Фильтр Y:
(object.Col == 'RED' or object.Col == 'GREEN') and (object.ID == 3 or object.ID > 22)
Фильтр A пересекается с фильтром B. На диаграмме Венна они накладываются друг на друга. Уравнение для области перекрытия будет:
object.Col == 'GREEN' and (object.ID == 64 or object.ID > 9001)
Как бы это уравнение рассчитывается на языке, таких как Python или Haskell?
Я хочу в конечном итоге сделать это в Lua, но если бы Python, Haskell или другой язык предоставили функциональность, я смог бы посмотреть исходный код и преобразовать его.
Вот как я представляю фильтры в Lua:
filter = DataFilter(
{"and",
{"or",
{"==", "Col", "RED"},
{"==", "Col", "GREEN"},
},
{"or",
{"==", "ID", 3},
{">" , "ID", 22},
},
}
)
Пожалуйста, мне точку в правильном направлении.
Благодарим вас за этот намек. Сейчас я изучаю это. – Deco
Я рад, что смогу помочь :) – sleeplessnerd