про множества опять
Dec. 23rd, 2018 10:35 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Ну хорошо, в блямбде sets построить можно; можно попробовать в типизированной лямбде. А что мы строим?
Ну в смысле, если просто предикаты, так это, там ничего и делать вроде бы не надо? Но тут вопрос, а на хрена материализовывать что-то, если есть предикат? Я так понимаю, просто чтобы закешировать. Чтоб два раза не ходить. Execution plan, то есть, слепленный вручную кое-как. В сиквеле редко когда результат select where еще куда-то записывают на постоянку; это view. А в "обычном коде" сплошь и рядом. Ну ладно. Там нам надо будет элементы показывать (причем, порядок не важен). Т.е. надо что, enumeration? Ну или просто, согласно аксиоме выбора, взять один, из остатка взять другой, и т.д. - достаточно же. Согласно теории множеств, это эквивалентно наличию линейного порядка.
Ну в смысле, если просто предикаты, так это, там ничего и делать вроде бы не надо? Но тут вопрос, а на хрена материализовывать что-то, если есть предикат? Я так понимаю, просто чтобы закешировать. Чтоб два раза не ходить. Execution plan, то есть, слепленный вручную кое-как. В сиквеле редко когда результат select where еще куда-то записывают на постоянку; это view. А в "обычном коде" сплошь и рядом. Ну ладно. Там нам надо будет элементы показывать (причем, порядок не важен). Т.е. надо что, enumeration? Ну или просто, согласно аксиоме выбора, взять один, из остатка взять другой, и т.д. - достаточно же. Согласно теории множеств, это эквивалентно наличию линейного порядка.
Короче, сдается мне уже, что софтверные "множества" можно определить как пары, предикат и линейный порядок, с отношением эквивалентности по равенству предикатов (это, понятно, немножко смешно, но что поделаешь).
Так годится?