На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (33) « Первая ... 18 19 [20] 21 22 ...  32 33  ( Перейти к последнему сообщению )  
> trait + impl vs class , навеяно Rust'ом
    Цитата applegame @
    Цитата D_KEY @
    Из определения ПП следует отсутствие зависимости кода(исходного, а не бинарного) от параметров. В C++ эта зависимость существует
    В исходном коде??? :facepalm:

    Возможно неверено выразился. Имел в виду, что C++ генерирует сущности языка. И речь именно о них, а не о машинном коде.

    Цитата
    Цитата D_KEY @
    В том и дело, что для C++ это вопрос не реализации, а спецификации языка.
    Реализация и спецификация не являются взаимоисключающими понятиями. Да, в спецификации C++ жестко указан способ реализации параметрического полиморфизма.

    Нет. Там описаны шаблоны, а не реализация параметрического полиморфизма.
      Цитата Qraizer @
      В качестве методички по основам затронутого материала можно ознакомиться с популярным изложением матчасти, которая лежала всё это время перед вашими глазами.

      :lool: С системой F мы как раз таки в состоянии сделать проверку типов, если их получается бесконечное количество как инстансов полиморфных типов. А C++, D, Rust - не в состоянии.

      Добавлено
      Цитата applegame @
      Эта дыра закрыта для ваших шаловливых ручонок. Ищите другие дыры

      Она всё там же.
      Мы так и будем играть, или вы таки поймёте, что если затирать типы до их проверки, то на эту проверку уже можно не полагаться?
        Цитата MyNameIsIgor @
        Она всё там же.
        Мы так и будем играть, или вы таки поймёте, что если затирать типы до их проверки, то на эту проверку уже можно не полагаться?
        Ну это уже совсем криминал. Может вынести всю фигню вам в отдельный модуль и заприватить конструкторы? ИМХО, это уже нарушение условий задачи. Думаете в жабовом и шарповом варианте не удасться аналогично похерить эти проверки?
        Сообщение отредактировано: applegame -
          Цитата applegame @
          это уже нарушение условий задачи.

          В чем?

          Цитата
          Думаете в жабовом и шарповом варианте не удасться аналогично похерить эти проверки?

          Аналогично? Покажи.
            Цитата D_KEY @
            В чем?
            В том, что делается попытка использовать "скрытые" типы, которые совсем скрыть от юзверя невозможно в силу гибкости языка.
            Даже если я запривачу все конструкторы наглухо, всегда можно влезть в сами cons'ы. А это совсем не то, что обсуждается в задаче.
              Цитата applegame @
              Цитата D_KEY @
              В чем?
              В том, что делается попытка использовать "скрытые" типы, которые совсем скрыть от юзверя невозможно в силу гибкости языка.
              Даже если я запривачу все конструкторы наглухо, всегда можно влезть в сами cons'ы. А это совсем не то, что обсуждается в задаче.

              Эм. Да ты хоть обзакрывайся :)
              Кто помешает написать в main_ так:
              ExpandedWrap disabled
                List!1 as2 = cons(i, as);
                return main_(n - 1, i + 1, cons(2*i + 1, as2), cons(i*i, bs));

              ?
                Цитата D_KEY @
                Эм. Да ты хоть обзакрывайся :)
                Ага, то есть если тебе не удасться испортить код не влезая в cons'ы то ты признаешь решение задачи? Я ведь могу сами типы List!N и ListN!N скрыть, даже внутри main_.

                Добавлено
                Цитата applegame @
                Я ведь могу сами типы List!N и ListN!N скрыть, даже внутри main_.
                Хотя это скорее всего не поможет. Но ты фактически искусственно испортил тип выражения cons(i, as), ты бы еще туда cast() вписал. Правильнее было бы
                ExpandedWrap disabled
                  auto as2 = cons(i, as);

                Иожет таки не будем упоминать List!N и ListN!N всуе? Для конструирования списка как и в хаскеле предусмотрена своя сущность - cons. Нахрена вручную портить тип списка?
                А то как-то нехорошо получается. В Хаскеле даже переменную создать невозможно, а в D вы их создаете как вам вздумается. В Хаскеле типы выводятся из выражений, а в D вы почему-то решили, что указывать типы вручную - по правилам. Не, друзья, так дело не пойдет.
                Сообщение отредактировано: applegame -
                  Цитата applegame @
                  ИМХО, это уже нарушение условий задачи.

                  О какой задаче вы уже третий день спорите? :)
                    Цитата OpenGL @
                    О какой задаче вы уже третий день спорите? :)
                    О вот этой - https://www.linux.org.ru/forum/development/4300872
                      Не понял задачу. Как во время компиляции можно определить длину списка, которая известна только в рантайме? Имхо, задача поставлена некорректно.
                        Цитата OpenGL @
                        Не понял задачу. Как во время компиляции можно определить длину списка, которая известна только в рантайме? Имхо, задача поставлена некорректно.
                        Нормально поставлена, хоть и не без отвлекающих маневров. Мне понадобился целый день, чтобы понять что же хочет нам доказать афтырь. В смысле не то что я думал весь день. Просто я читал этот код, в течение дня периодически обдумывал и только к вечеру до меня дошло.
                        Сообщение отредактировано: applegame -
                          Цитата applegame @
                          Ну это уже совсем криминал. Может вынести всю фигню вам в отдельный модуль и заприватить конструкторы?

                          И каким образом вы мне гарантируете, что в этом вашем модуле нет ошибок с обработкой списков разной длины, например?
                          Цитата applegame @
                          а в D вы их создаете как вам вздумается

                          Не принимается. Мы создаём её с ошибкой, потому что предоставленная вами иерархия позволяет создать с ошибкой. В том же решении на шарпе такого не было.
                          Цитата applegame @
                          Ага, то есть если тебе не удасться испортить код не влезая в cons'ы

                          Ни на чём не основанное условие.
                          Цитата applegame @
                          то ты признаешь решение задачи?

                          Вы хоть перед самим собой будьте честным.
                            Цитата OpenGL @
                            Как во время компиляции можно определить длину списка, которая известна только в рантайме?

                            Никак. Ее и не надо определять.
                              Цитата OpenGL @
                              Не понял задачу. Как во время компиляции можно определить длину списка, которая известна только в рантайме?

                              Её не надо определять во время компиляции. Надо просто доказать, что мы обрабатываем два списка одинаковой длины.
                              Цитата OpenGL @
                              Имхо, задача поставлена некорректно.

                              Задача абсолютно корректна.
                                Цитата applegame @
                                Цитата applegame @
                                Я ведь могу сами типы List!N и ListN!N скрыть, даже внутри main_.
                                Хотя это скорее всего не поможет.

                                Ага.

                                Цитата
                                Но ты фактически искусственно испортил тип выражения cons(i, as), ты бы еще туда cast() вписал.

                                Я сделал все типобезопасно с точки зрения языка. Наследника можно воспринимать как предка. is-a и все такое.
                                Какие ко мне вопросы?

                                Цитата
                                Иожет таки не будем упоминать List!N и ListN!N всуе?

                                И как тогда написать main_?

                                Цитата
                                А то как-то нехорошо получается. В Хаскеле даже переменную создать невозможно, а в D вы их создаете как вам вздумается.

                                Хм. Что такого я сделал? Ты сам это делаешь при вызове main_ :-?
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (33) « Первая ... 18 19 [20] 21 22 ...  32 33


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0534 ]   [ 15 queries used ]   [ Generated: 20.07.25, 10:02 GMT ]