На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (8) « Первая ... 3 4 [5] 6 7 ... Последняя » все  ( Перейти к последнему сообщению )  
> Java vs Kotlin
    Цитата korvin @
    задача изначально была одна: определить тип (int > 0) средствами статической типизации. если ты ее как-то не так понял, не зачем возмущаться =)
    Кинь ка мне ссылочку на изначальное определение задачи.

    Добавлено
    Может я чего упустил.
      Цитата MyNameIsIgor @
      А я здесь типизации не вижу.

      как это нет? integer -- один тип, natural -- другой. у них есть определенные различия

      Добавлено
      Цитата Повстанець @
      Кинь ка мне ссылочку на изначальное определение задачи.

      Может я чего упустил.

      вот основной вопрос: Java vs Kotlin (сообщение #2941949)

      в качестве примера я выбрал определение типа (int > 0)
        Цитата korvin @
        ой лол, тебе система типов на что дадена?

        Явно не для того, чтобы ветвления устраивать, ага.
          Цитата korvin @
          в качестве примера я выбрал определение типа (int > 0)
          Что выбрал, то и получил. Хотел в статике -- получил в статике.
            Цитата MyNameIsIgor @
            Явно не для того, чтобы ветвления устраивать, ага.

            какие ветвления? о чем ты? я всего лишь хочу тип natural
              Цитата korvin @
              задача изначально была одна: определить тип (int > 0) средствами статической типизации
              Покажешь пример с динамической типизацией, позволяющий объявить такой тип?

              Просто в статике это можно реализовать через пользовательский тип с проверкой значений во время выполнения. Другого способа нет. Ни в статике, ни в динамике. Поэтому такие типы и не применяются.
                Цитата Повстанець @
                Что выбрал, то и получил. Хотел в статике -- получил в статике.

                нет, не получил
                  Цитата korvin @
                  нет, не получил
                  Да ну... Статика? Статика... Всё что меньше нуля отбрасывает? Отбрасывает. :yes:

                  Все дальнейшие условия появились после решения этой задачи.
                  Сообщение отредактировано: Повстанець -
                    Цитата amk @
                    Покажешь пример с динамической типизацией, позволяющий объявить такой тип?

                    я уже показывал:
                    ExpandedWrap disabled
                      (define (natural? x)
                        (and (integer? x) (positive? x)))
                       
                      ; или используя контракт and/c:
                       
                      (define natural? (and/c integer? positive?))

                    все


                    Цитата amk @
                    Просто в статике это можно реализовать через пользовательский тип с проверкой значений во время выполнения. Другого способа нет. Ни в статике, ни в динамике. Поэтому такие типы и не применяются.

                    я знаю, проверка в конструкторе. только в динамике и так все в динамике, поэтому противоречий с системой типов не происходит. и таки в динамике применяются.

                    Добавлено
                    Цитата Повстанець @
                    Да ну... Статика? Статика... Всё что меньше нуля отбрасывает? Отбрасывает. :yes:

                    пример с переменными, а не константами, будет? или вы всю программу в константах пишете?
                      Цитата korvin @
                      пример с переменными, а не константами, будет?
                      Ты не просил переменных и рантайм. Ты просил статику и этап компиляции.
                        korvin, вам бы научиться изъясняться... Желательно по-русски...
                        Цитата korvin @
                        я знаю, проверка в конструкторе.

                        Жаждите увидеть такое? Тогда к чему вопросы, если понятно, что это реализуемо?
                          Нифига не понял.
                          ExpandedWrap disabled
                            template <bool> Bool2Type{};
                             
                            template <typename T> T f(T t, Bool2Type<false>);
                            template <typename T> T f(T t, Bool2Type<true>);
                             
                            template <typename T> T f(T t)
                            {
                              return f(t, Bool2Type<std::numeric_limits<T>::is_signed>());
                            }
                            Цитата Повстанець @
                            Ты не просил переменных и рантайм. Ты просил статику и этап компиляции.

                            угу, статику с переменными, или что, статическая типизация этого не позволяет? константы я и в CL/Racket могу в compile-time проверять.

                            Добавлено
                            Цитата MyNameIsIgor @
                            Жаждите увидеть такое?

                            нет, такой ад не жажду увидеть

                            Добавлено
                            Цитата Qraizer @
                            Нифига не понял.
                            ExpandedWrap disabled
                              template <bool> Bool2Type{};
                               
                              template <typename T> T f(T t, Bool2Type<false>);
                              template <typename T> T f(T t, Bool2Type<true>);
                               
                              template <typename T> T f(T t)
                              {
                                return f(t, Bool2Type<std::numeric_limits<T>::is_signed>());
                              }

                            аналогично
                              Цитата korvin @
                              нет, такой ад не жажду увидеть

                              Жалкий ниасилятор :lol:
                                Цитата MyNameIsIgor @
                                Цитата (korvin @ Вчера, 19:46)
                                нет, такой ад не жажду увидеть
                                Жалкий ниасилятор

                                Пример был реально аццкий)) Недетерминированный тип простым фабричным методом... оригинально. А если условие чуть усложниться? Надо будет, скажем, отдельный тип для простых чисел. На что unsigned заменишь, чтобы контроль не потерять? В этом плане пример korvin'а, конечно, рафинирован гораздо лучше.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0421 ]   [ 14 queries used ]   [ Generated: 17.06.25, 11:08 GMT ]