vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Выяснил что в стандартной библиотеке питона модуль collections, а в нем функция namedtuple. Позволяющая генерировать наборы данных с именованными полями и нулевым оверхедом. Более того named tuples - hashable, т.е. могут использоваться в качестве индекстов dict или элементов множества. И их очень удобно создавать из списков, dictionaries и тому подобных конструкций.

Теперь хочу реализацию операций реляционной алгебры над set of named tuples.

Date: 2020-01-06 08:19 pm (UTC)
From: [personal profile] bowhill
Объекты — концепция иерархическая и инкапсуляционная, реляционная модель — очевидно, нет. Отобразить граф иерархией никак не получится и никакая «модность» объектов не поможет.

Date: 2020-01-07 01:25 pm (UTC)
From: [personal profile] kouzdra
Совершенно не обязательно. В OCaml (да и в Go) ничего такого особенно нет - соответствие объекта типу определяется исключительно фактической совместимостью по интерфейсу (кстати потому же в d Ocaml невозможен downcasting - для этого просто нет информации). Я кстати сильно подозреваю что упомянтое питоническое сперто как раз с Ocaml-евых объектов - там конечно оверхед не нулевой - там компилятор подбирает совершенный хеш, но подозреваю что по меркам питона - лишняя операция деления и лишняя косвенность - он нулевой

PS: Собственно в GCC 2.xx было подобное опытное расширение - сигнатуры, но не прижилось.

Date: 2020-01-07 03:25 pm (UTC)
From: [personal profile] bowhill
Можно, конечно, и структуру объектом назвать, это уже дело стиля. Ну а так есть и наследование, и инкапсуляция. То есть антагонисты реляционной модели.
Edited Date: 2020-01-07 03:29 pm (UTC)

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

May 2025

S M T W T F S
    1 2 3
4 56 7 8 9 10
11 12 131415 1617
1819202122 2324
252627 28293031

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 28th, 2025 10:23 am
Powered by Dreamwidth Studios