juan_gandhi: (Default)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2018-12-23 10:35 pm
Entry tags:

про множества опять

Ну хорошо, в блямбде sets построить можно; можно попробовать в типизированной лямбде. А что мы строим?

Ну в смысле, если просто предикаты, так это, там ничего и делать вроде бы не надо? Но тут вопрос, а на хрена материализовывать что-то, если есть предикат? Я так понимаю, просто чтобы закешировать. Чтоб два раза не ходить. Execution plan, то есть, слепленный вручную кое-как. В сиквеле редко когда результат select where еще куда-то записывают на постоянку; это view. А в "обычном коде" сплошь и рядом. Ну ладно. Там нам надо будет элементы показывать (причем, порядок не важен). Т.е. надо что, enumeration? Ну или просто, согласно аксиоме выбора, взять один, из остатка взять другой, и т.д. - достаточно же. Согласно теории множеств, это эквивалентно наличию линейного порядка.

Короче, сдается мне уже, что софтверные "множества" можно определить как пары, предикат и линейный порядок, с отношением эквивалентности по равенству предикатов (это, понятно, немножко смешно, но что поделаешь).

Так годится?

 

66george: (Default)

[personal profile] 66george 2018-12-24 08:39 am (UTC)(link)
С кем общаетесь на эту тему, кроме Милевского?
Я спросил Шеня, читал ли он мой учебник, Шень сказал "нет". Это показывает, что Шень в душе русский человек, страшно ленив и не любопытен Шень.
epimorphisms_split: (Default)

[personal profile] epimorphisms_split 2018-12-24 03:35 pm (UTC)(link)
Множества можно по-всякому определить, предикат и линейный порядок тоже можно, но в софтвере с этим могут быть проблемы. Мы же хотим, чтобы быстро было, а не абы как. Ну вот давайте сделаем какое-нибудь множество из трех действительных чисел. Машинных. {-1, 0, 1}. И сколько времени нам понадобится, чтобы его все перечислить? Если по порядку выбирать из всех IEEE Double и проверять предикат.

Непонятно, также, что значит "с отношением эквивалентности по равенству предикатов". Мне нужно множество чисел от 2 до 5, предикат будет \x->x>=2&&x<5. Что здесь чему эквивалентно? Я совсем не хочу, чтобы 3 было эквиваленто 4.
epimorphisms_split: (Default)

[personal profile] epimorphisms_split 2018-12-24 07:44 pm (UTC)(link)
> Сначала определить принцип.

Ну я подожду ;)

> эквивалентны, если предикаты равны

А, так это множества равны, а не элементы равны, так? Тогда да.