?

Log in

No account? Create an account

Заповедник репрессивной психиатрии

Объекты и функции
metaclass
Что-то обычное вкалывание в стиле "чо тут думать, кодить надо" не идет, сижу для разминки мозга проектирую всякие невозможные вещи, типа write-only БД с интерпретатором хаскеля в качестве основного языка и чего-то вроде DataGrid в качестве основного GUI.

И в процессе всплыло сопоставление объектов и функций. Т.е., например, у нас есть класс-тип объекта, и есть сигнатура функции-ее тип. А вот кроме этого, общего найти почти не получается. Наследованию классов аналогии у сигнатур функций не находится. Создание объекта - экземпляра класса для функций тоже что-то сложно представить (разве что по заданной сигнатуре склепать замыкание из других функций, но это происходит в compile-time, а в рунтайме разве что значения связанных переменных в замыкание подставляются).
Т.е. экземпляр функции создается один раз в рунтайме(из исходного кода) и используется почти всегда один экземпляр с заданной сигнатурой. Хотя вот для всяких функций высшего порядка типа map и filter мы можем подсунуть разные экземпляры функций, но их все равно намного меньше, чем, например, экземпляров какого-нибудь класса типа там "элемент управления GUI".

В этом плане функции больше похожи на иногда встречающиеся классы, экземпляр которых существует один на всю программу, создается при старте и разрушается при выходе, вроде MainForm. Такие классы больше похожи на контейнеры для того чтобы прятать глобальные переменные, чем собственно на классы.

Что из этого следует - пока непонятно.