Nov. 21st, 2009

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

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

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

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

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 8th, 2025 03:02 pm
Powered by Dreamwidth Studios