
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.218] |
![]() |
|
Страницы: (33) « Первая ... 18 19 [20] 21 22 ... 32 33 ( Перейти к последнему сообщению ) |
Сообщ.
#286
,
|
|
|
Цитата applegame @ Цитата D_KEY @ В исходном коде??? Из определения ПП следует отсутствие зависимости кода(исходного, а не бинарного) от параметров. В C++ эта зависимость существует ![]() Возможно неверено выразился. Имел в виду, что C++ генерирует сущности языка. И речь именно о них, а не о машинном коде. Цитата Реализация и спецификация не являются взаимоисключающими понятиями. Да, в спецификации C++ жестко указан способ реализации параметрического полиморфизма. Нет. Там описаны шаблоны, а не реализация параметрического полиморфизма. |
Сообщ.
#287
,
|
|
|
Цитата Qraizer @ В качестве методички по основам затронутого материала можно ознакомиться с популярным изложением матчасти, которая лежала всё это время перед вашими глазами. ![]() Добавлено Она всё там же. Мы так и будем играть, или вы таки поймёте, что если затирать типы до их проверки, то на эту проверку уже можно не полагаться? |
Сообщ.
#288
,
|
|
|
Цитата MyNameIsIgor @ Ну это уже совсем криминал. Может вынести всю фигню вам в отдельный модуль и заприватить конструкторы? ИМХО, это уже нарушение условий задачи. Думаете в жабовом и шарповом варианте не удасться аналогично похерить эти проверки? Она всё там же. Мы так и будем играть, или вы таки поймёте, что если затирать типы до их проверки, то на эту проверку уже можно не полагаться? |
Сообщ.
#289
,
|
|
|
Цитата applegame @ это уже нарушение условий задачи. В чем? Цитата Думаете в жабовом и шарповом варианте не удасться аналогично похерить эти проверки? Аналогично? Покажи. |
Сообщ.
#290
,
|
|
|
Цитата D_KEY @ В том, что делается попытка использовать "скрытые" типы, которые совсем скрыть от юзверя невозможно в силу гибкости языка.В чем? Даже если я запривачу все конструкторы наглухо, всегда можно влезть в сами cons'ы. А это совсем не то, что обсуждается в задаче. |
Сообщ.
#291
,
|
|
|
Цитата applegame @ Цитата D_KEY @ В том, что делается попытка использовать "скрытые" типы, которые совсем скрыть от юзверя невозможно в силу гибкости языка.В чем? Даже если я запривачу все конструкторы наглухо, всегда можно влезть в сами cons'ы. А это совсем не то, что обсуждается в задаче. Эм. Да ты хоть обзакрывайся ![]() Кто помешает написать в main_ так: ![]() ![]() List!1 as2 = cons(i, as); return main_(n - 1, i + 1, cons(2*i + 1, as2), cons(i*i, bs)); ? |
Сообщ.
#292
,
|
|
|
Цитата D_KEY @ Ага, то есть если тебе не удасться испортить код не влезая в cons'ы то ты признаешь решение задачи? Я ведь могу сами типы List!N и ListN!N скрыть, даже внутри main_. Эм. Да ты хоть обзакрывайся ![]() Добавлено Цитата applegame @ Хотя это скорее всего не поможет. Но ты фактически искусственно испортил тип выражения cons(i, as), ты бы еще туда cast() вписал. Правильнее было быЯ ведь могу сами типы List!N и ListN!N скрыть, даже внутри main_. ![]() ![]() auto as2 = cons(i, as); Иожет таки не будем упоминать List!N и ListN!N всуе? Для конструирования списка как и в хаскеле предусмотрена своя сущность - cons. Нахрена вручную портить тип списка? А то как-то нехорошо получается. В Хаскеле даже переменную создать невозможно, а в D вы их создаете как вам вздумается. В Хаскеле типы выводятся из выражений, а в D вы почему-то решили, что указывать типы вручную - по правилам. Не, друзья, так дело не пойдет. |
![]() |
Сообщ.
#293
,
|
|
Цитата applegame @ ИМХО, это уже нарушение условий задачи. О какой задаче вы уже третий день спорите? ![]() |
Сообщ.
#294
,
|
|
|
Цитата OpenGL @ О вот этой - https://www.linux.org.ru/forum/development/4300872 О какой задаче вы уже третий день спорите? ![]() |
![]() |
Сообщ.
#295
,
|
|
Не понял задачу. Как во время компиляции можно определить длину списка, которая известна только в рантайме? Имхо, задача поставлена некорректно.
|
Сообщ.
#296
,
|
|
|
Цитата OpenGL @ Нормально поставлена, хоть и не без отвлекающих маневров. Мне понадобился целый день, чтобы понять что же хочет нам доказать афтырь. В смысле не то что я думал весь день. Просто я читал этот код, в течение дня периодически обдумывал и только к вечеру до меня дошло. Не понял задачу. Как во время компиляции можно определить длину списка, которая известна только в рантайме? Имхо, задача поставлена некорректно. |
Сообщ.
#297
,
|
|
|
Цитата applegame @ Ну это уже совсем криминал. Может вынести всю фигню вам в отдельный модуль и заприватить конструкторы? И каким образом вы мне гарантируете, что в этом вашем модуле нет ошибок с обработкой списков разной длины, например? Цитата applegame @ а в D вы их создаете как вам вздумается Не принимается. Мы создаём её с ошибкой, потому что предоставленная вами иерархия позволяет создать с ошибкой. В том же решении на шарпе такого не было. Цитата applegame @ Ага, то есть если тебе не удасться испортить код не влезая в cons'ы Ни на чём не основанное условие. Цитата applegame @ то ты признаешь решение задачи? Вы хоть перед самим собой будьте честным. |
Сообщ.
#298
,
|
|
|
Цитата OpenGL @ Как во время компиляции можно определить длину списка, которая известна только в рантайме? Никак. Ее и не надо определять. |
Сообщ.
#299
,
|
|
|
Цитата OpenGL @ Не понял задачу. Как во время компиляции можно определить длину списка, которая известна только в рантайме? Её не надо определять во время компиляции. Надо просто доказать, что мы обрабатываем два списка одинаковой длины. Цитата OpenGL @ Имхо, задача поставлена некорректно. Задача абсолютно корректна. |
Сообщ.
#300
,
|
|
|
Цитата applegame @ Цитата applegame @ Хотя это скорее всего не поможет.Я ведь могу сами типы List!N и ListN!N скрыть, даже внутри main_. Ага. Цитата Но ты фактически искусственно испортил тип выражения cons(i, as), ты бы еще туда cast() вписал. Я сделал все типобезопасно с точки зрения языка. Наследника можно воспринимать как предка. is-a и все такое. Какие ко мне вопросы? Цитата Иожет таки не будем упоминать List!N и ListN!N всуе? И как тогда написать main_? Цитата А то как-то нехорошо получается. В Хаскеле даже переменную создать невозможно, а в D вы их создаете как вам вздумается. Хм. Что такого я сделал? Ты сам это делаешь при вызове main_ ![]() |