Под сопоставлением с образцом обычно понимают сопоставление со структурой данных. То есть не просто a имеет какой-то тип, а ещё и содержимое a обладает определённой структурой.
Однако, в широко используемых императивных языках принят объектно-ориентированный подход, который подразумевает инкапсуляцию структуры объектов. То есть матчить там по сути нечего, разве что тип объекта в дереве наследования (что обозвали полиморфизмом).
Утверждение «X читается легче и красивее, чем Y» само по себе именно что субъективно и непроверяемо.
Объективно — ну, например, замерить время, потраченное на ревью одного и того же кода, записанного в разном стиле. Тогда уже будет из чего делать какие-то выводы.
Окей, я понял. Метаклассы — это место, которое пришлось выдумать, чтобы куда-то пристроить методы объектов. И потом ещё понадобился Metaclass, чтобы куда-то пристроить методы метаклассов. И ещё Metaclass class, чтобы пристроить методы самого Metaclass. Для Metaclass class каких-то характерных лично для него методов уже не выдумали, поэтому он просто сделан экземпляром Metaclass.
Я считаю, что в математике слово «очевидно» следует понимать как «точное и исчерпывающее доказательство данного утверждения можно сформулировать в течение минуты (с учётом времени на обдумывание, написание и разъяснение)». Я не считаю, что для предподавателей всё в дисциплине, которую они преподают, априори считается очевидным, чтобы от них требовать подобных разъяснений в тот же момент, когда возникает вопрос.
Затычка — это вон тот самый «Metaclass class». Почему для классов классов надо вводить свои собственные метаклассы, а сами метаклассы обходятся общим на всех Metaclass? Непоследовательно и выглядит как логический костыль.
А похоже дело в том, что для класса Metaclass нельзя придумать нормальных методов. Если класс хранит методы объектов, метакласс хранит методы класса, а Metaclass хранит методы всей объектной системы в целом, то какие методы должен хранить Metaclass class? Позволяющие создавать произвольные объектные системы?
Вот тут мозги философов от объектного программирования поплавились. Поэтому от греха подальше цепочку замкнули саму на себя. А вот в Ruby, насколько мне известно, мозги решили не щадить.
Я думаю, именно из-за зацикленности цепочки метаклассов. Нет смысла давать имя сущности, которая является не полноценной экстраполяцией отношения class-of, а всего лишь затычкой для оправдания аксиомы «у каждого объекта должен быть класс». Пусть даже этой экстраполяции нельзя придать разумный смысл.
Лично мне вообще нравится перевод first-class object как «полноценный объект». Аккуратно передаёт смысл и не создаёт ненужных коннотаций: «А что тогда второй класс? А третий?»
Итого, общая сумма получилась 31 гривна (около 4$), что значительно меньше, чем стоимость всех ранее найденных готовых изделий.
<занудство>Для Великой Справедливости сюда необходимо добавить стоимость времени, расходников и амортизировать время на придумку идеи, клеевой пистолет и прочее.</занудство>
Потому что EPUB — это (X)HTML + CSS. Очень немногие хардварные читалки умеют вменяемо обрабатывать весь HTML и CSS. Поэтому очень сложно сделать EPUB, который одинаково без косяков отображается везде. Особенно, если там вёрстка посложнее, чем у художественной литературы. Особенно, если там формулы. Даже софтовые читалки EPUB часто отображают его через задницу заменяя стили на собственные и нечаянно ломая аккуратную вёрстку; что делают хардварные, вообще страшно представить.
a
имеет какой-то тип, а ещё и содержимоеa
обладает определённой структурой.Однако, в широко используемых императивных языках принят объектно-ориентированный подход, который подразумевает инкапсуляцию структуры объектов. То есть матчить там по сути нечего, разве что тип объекта в дереве наследования (что обозвали полиморфизмом).
Звучит действительно забавно в свете первой теоремы Гёделя о неполноте.
Объективно — ну, например, замерить время, потраченное на ревью одного и того же кода, записанного в разном стиле. Тогда уже будет из чего делать какие-то выводы.
NO U.
А похоже дело в том, что для класса Metaclass нельзя придумать нормальных методов. Если класс хранит методы объектов, метакласс хранит методы класса, а Metaclass хранит методы всей объектной системы в целом, то какие методы должен хранить Metaclass class? Позволяющие создавать произвольные объектные системы?
Вот тут мозги философов от объектного программирования поплавились. Поэтому от греха подальше цепочку замкнули саму на себя. А вот в Ruby, насколько мне известно, мозги решили не щадить.
Угу, стандартная настроечная таблица шрифтов для программирования: O01Il|
через задницузаменяя стили на собственные и нечаянно ломая аккуратную вёрстку; что делают хардварные, вообще страшно представить.