Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 346 347 [348] 349 350 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#5206
,
|
|
|
|
|
Сообщ.
#5208
,
|
|
|
|
подключили хидер, который подключил другой хидер, который ... подключил хидер со специализированным Map. не, я согласен, что ситуация не частая, но вполне возможная. |
|
Сообщ.
#5209
,
|
|
|
|
Цитата korvin @ местоимение "мы" там используется образно. это может быть кто угодно. Не понимаю, как это возможно. Цитата какой еще my_map? я сказал сломай map Я привел пример аналогичной поломки. Если специализацию написал ты сам - то и ССЗБ. Если ее написал автор библиотеки, где описан Map - значит так и задумывалось. Если ее написал автор какой-то другой библиотеки, которая использует Map - значит он хотел, чтобы Map работал именно так для списков, в которых содержится данный тип. Пока все логично. Еще варианты? |
|
Сообщ.
#5210
,
|
|
|
|
Цитата D_KEY @ В зависимости от контекста такого сравнения. В обсуждаемом случае - различия не важны. ну когда сломаешь хаскелловый map вышеуказанным (или схожим) образом, тогда да, я соглашусь, что различия не важны и твой Map является аналогом хаскеллового map |
|
Сообщ.
#5211
,
|
|
|
|
Цитата korvin @ подключил хидер со специализированным Map. Значит это было нужно. Цитата не, я согласен, что ситуация не частая, но вполне возможная. В специализации нет ничего страшного. При отладки шаблонного кода есть масса других проблем |
|
Сообщ.
#5212
,
|
|
|
|
Цитата D_KEY @ Я привел пример аналогичной поломки. нет, не привел. я сломал тот же самый Map, а ты взял и написал какой-то свой my_map, который на оригинальный map никак не влияет. Добавлено Цитата D_KEY @ Если специализацию написал ты сам - то и ССЗБ. Если ее написал автор библиотеки, где описан Map - значит так и задумывалось. Если ее написал автор какой-то другой библиотеки, которая использует Map - значит он хотел, чтобы Map работал именно так для списков, в которых содержится данный тип. Пока все логично. ну так и не утверждай тогда, что твой Map аналогичен моему map, у них разная семантика |
|
Сообщ.
#5213
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ В зависимости от контекста такого сравнения. В обсуждаемом случае - различия не важны. ну когда сломаешь хаскелловый map вышеуказанным (или схожим) образом, тогда да, я соглашусь, что различия не важны и твой Map является аналогом хаскеллового map Если хаскеллевский map более ограничен в возможностях(не позволяет кастомизировать работу в зависимости от значений списка), это не значит, что Map для списков типов не может рассматриваться в нашем контексте. Ты и так отвлекся от обсуждения Тебе понятны опциональные возможности, классы-политики, классы-характеристики, и вообще шаблоны как генераторы типов? Добавлено Цитата korvin @ Цитата D_KEY @ Если специализацию написал ты сам - то и ССЗБ. Если ее написал автор библиотеки, где описан Map - значит так и задумывалось. Если ее написал автор какой-то другой библиотеки, которая использует Map - значит он хотел, чтобы Map работал именно так для списков, в которых содержится данный тип. Пока все логично. ну так и не утверждай тогда, что твой Map аналогичен моему map, у них разная семантика Нет, у них просто разная степень кастомизации. |
|
Сообщ.
#5214
,
|
|
|
|
Цитата D_KEY @ Если хаскеллевский map более ограничен в возможностях(не позволяет кастомизировать работу в зависимости от значений списка), это не значит, что Map для списков типов не может рассматриваться в нашем контексте. щито? у хаскеллового (да и вообще функционального) map строго определенное поведение, заданное автором по мат.определению. считай это, ну не знаю, инвариантом(?), это дает гарантии однозначности его поведения независимо от параметров. и о какой кастомизации идет речь, если map работает с одним конкретным типо -- список, пусть даже это список типов, т.е. твой Map фактически является даже не обобщенным ![]() ![]() Map :: (a -> b) -> [a] -> [b] а конкретным ![]() ![]() Map :: (Type -> Type) -> [Type] -> [Type] с возможностью доопределить образцы например таким: ![]() ![]() Map fn (SomeType : _) = [] что приведет вызов ![]() ![]() Map (\t -> Vector t) [Int, Double, SomeType, String, Bool] к результату ![]() ![]() [Vector Int, Vector Double] Добавлено Цитата D_KEY @ Нет, у них просто разная степень кастомизации. нет, это разная семантика |
|
Сообщ.
#5215
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Если хаскеллевский map более ограничен в возможностях(не позволяет кастомизировать работу в зависимости от значений списка), это не значит, что Map для списков типов не может рассматриваться в нашем контексте. щито? у хаскеллового (да и вообще функционального) map строго определенное поведение, заданное автором по мат.определению. считай это, ну не знаю, инвариантом(?), это дает гарантии однозначности его поведения независимо от параметров. Это не противоречит тому, что ты процитировал. Цитата и о какой кастомизации идет речь О специализации поведения для списка содержащего наш тип. Цитата твой Map фактически является даже не обобщенным Ты это только сейчас понял? Цитата Цитата D_KEY @ Нет, у них просто разная степень кастомизации. нет, это разная семантика Если ты не будешь кастомизировать, то будет та же семантика. Согласен? Значит, разница в степени кастомизации Добавлено korvin Цитата D_KEY @ Ты и так отвлекся от обсуждения Тебе понятны опциональные возможности, классы-политики, классы-характеристики, и вообще шаблоны как генераторы типов? |
|
Сообщ.
#5216
,
|
|
|
|
Цитата D_KEY @ Если ты не будешь кастомизировать, то будет та же семантика. Согласен? Значит, разница в степени кастомизации ![]() нет, семантика уже другая. изначально. сама возможность этой сомнительной "кастомизации" -- уже есть другая семантика Добавлено нет, мне определенно нравится, когда С++-ники называют возможность сломать абстракцию(из-за невозможности эту абстракцию полноценно реализовать видимо?) "возможностью кастомизации", "фичей"... =) |
|
Сообщ.
#5217
,
|
|
|
|
Цитата korvin @ нет, семантика уже другая. изначально. Цитата сама возможность этой сомнительной "кастомизации" -- уже есть другая семантика Почему? А если у нас такая "структура данных", что мы каким-то образом можем узнать длину хвоста у элемента(например, у нас какой-то кэш), то почему бы это не сделать, вместо того, чтобы бегать по списку? Да мало ли что может понадобится... Цитата нет, мне определенно нравится, когда С++-ники называют возможность сломать абстракцию(из-за невозможности эту абстракцию полноценно реализовать видимо?) "возможностью кастомизации", "фичей"... =) Трололо Ты пока не показал ни одного недостатка шаблонов. И собираешься ли ты отвечать на мой вопрос, который я задаю тебе уже несколько раз? |
|
Сообщ.
#5218
,
|
|
|
|
Цитата D_KEY @ Почему? А если у нас такая "структура данных", что мы каким-то образом можем узнать длину хвоста у элемента(например, у нас какой-то кэш), то почему бы это не сделать, вместо того, чтобы бегать по списку? Да мало ли что может понадобится... как это вообще относится к map? o_O' ну а для произвольных типов у нас есть отличный ![]() ![]() class Functor f where fmap :: (a -> b) -> f a -> f b который соответственно для списков определен как ![]() ![]() instance Functor [] where fmap = map Добавлено Цитата D_KEY @ Ты пока не показал ни одного недостатка шаблонов. вы просто не хотите видеть. Добавлено Цитата D_KEY @ И собираешься ли ты отвечать на мой вопрос, который я задаю тебе уже несколько раз? который? ни на 348-й, ни на 347-й странице от тебя вопросов, на которые я не ответил, нет |
|
Сообщ.
#5219
,
|
|
|
|
Цитата korvin @ вы просто не хотите видеть. Ну перечисли парочку, что ли. Только не надо про Haskell. Про шаблоны в этом ключе тебе было рассказано лишь затем, чтобы ты понял происходящие. Как-то не помогло. Зато ты нашел повод поменять тему Вспоминаем контекст - сравнение с дженериками, опциональные возможности, классы-политики и т.д. Цитата Цитата D_KEY @ И собираешься ли ты отвечать на мой вопрос, который я задаю тебе уже несколько раз? который? ни на 348-й, ни на 347-й странице от тебя вопросов, на которые я не ответил, нет Вот же: Цитата Ты и так отвлекся от обсуждения Тебе понятны опциональные возможности, классы-политики, классы-характеристики, и вообще шаблоны как генераторы типов? Добавлено Цитата korvin @ как это вообще относится к map? o_O' Сорри, я о другом думал |
|
Сообщ.
#5220
,
|
|
|
|
Цитата D_KEY @ Ну перечисли парочку, что ли. Только не надо про Haskell. Про шаблоны в этом ключе тебе было рассказано лишь затем, чтобы ты понял происходящие. Как-то не помогло. Зато ты нашел повод поменять тему Вспоминаем контекст - сравнение с дженериками, опциональные возможности, классы-политики и т.д. я поменял тему? я привел пример, того, что требование дженериками реализовывать все свои методы не связано с динамикой, о чем шло рассуждение изначально. затем Вы же вспомнили опять про паттерн-матчинг. зачем? назвали бы уж перегрузкой, было бы логичней Добавлено Цитата D_KEY @ Вот же: Цитата Ты и так отвлекся от обсуждения Тебе понятны опциональные возможности, классы-политики, классы-характеристики, и вообще шаблоны как генераторы типов? это-то мне более-менее понятно, непонятно только при чем тут шаблоны, если это можно сделать и без них? впрочем ладно, все опять скатывается к Compile time vs Run time, а хаскелл тут оффтоп. |