На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (495) « Первая ... 215 216 [217] 218 219 ...  494 495  ( Перейти к последнему сообщению )  
> Delphi vs C++ vs C# , ну и Java немножко, где-то ближе к старшему байту номеров страниц
    Цитата korvin @
    алг.типы -- это просто наборы полей, где нулевое поле -- метка конструктора

    Брр... Ты валишь в одну кучу реализацию и теорию.
    Алгебраические типы данных - дизъюнктивное объединение декартовых произведений множеств.
    Для задания АТД и работы с ними вводят конструкторы, части, селекторы, предикаты.
    Все остальное - вопрос реализации. И реализация в scala ничем не уступает реализации в haskell.
    Сообщение отредактировано: D_KEY -
      Цитата korvin @
      затем, что весь юниксовый шелл по сути работа с неизвестными объектами -- разбор текстового IO

      И часто ты путал номера аргументов в awk'е? И нахрена это в высокоуровневый ЯП тащить?
      Сообщение отредактировано: Мяут-Настоящий -
        Цитата korvin @
        Цитата D_KEY @
        Описывают.
        А в ОО-мире алгебраические типы данных вполне можно рассматривать как абстрактный класс + фиксированный(или нет) набор конкретных классов.

        нет. нельзя, т.к. класс сам по себе не предоставляет должной абстракции. для алг. типов набор конструкторов строго фиксирован

        В scala у класса один конструктор(при необходимости можно ввести дополнительный конструктор, но не для case-класса).

        Цитата
        Цитата Мяут-Настоящий @
        Вот так и непонял, нафига взаимодействие с "неизвестными объектами"

        затем, что весь юниксовый шелл по сути работа с неизвестными объектами -- разбор текстового IO

        Причем тут это? И как ты собираешься у текста спрашивать, какие операции он поддерживает?
          Цитата D_KEY @
          Цитата korvin @
          алг.типы -- это просто наборы полей, где нулевое поле -- метка конструктора

          Брр... Ты валишь в одну кучу реализацию и теорию.
          Алгебраические типы данных - дизъюнктивное объединение декартовых произведений множеств.
          Для задания АТД и работы с ними вводят конструкторы, части, селекторы, предикаты.
          Все остальное - вопрос реализации. И реализация в scala ничем не уступает реализации в haskell.

          нет, не валю, а ты похоже путаешь CS и теорию множеств =)

          Добавлено
          Цитата D_KEY @
          В scala у класса один конструктор(при необходимости можно ввести дополнительный конструктор, но не для case-класса).

          я не понял к чему ты это

          Добавлено
          Цитата D_KEY @
          Причем тут это? И как ты собираешься у текста спрашивать, какие операции он поддерживает?

          при том, что удачный парсинг == подтверждение реализации объектом интерфейса.
            Цитата korvin @
            Цитата D_KEY @
            Цитата korvin @
            алг.типы -- это просто наборы полей, где нулевое поле -- метка конструктора

            Брр... Ты валишь в одну кучу реализацию и теорию.
            Алгебраические типы данных - дизъюнктивное объединение декартовых произведений множеств.
            Для задания АТД и работы с ними вводят конструкторы, части, селекторы, предикаты.
            Все остальное - вопрос реализации. И реализация в scala ничем не уступает реализации в haskell.

            нет, не валю, а ты похоже путаешь CS и теорию множеств =)

            Валишь. Даже по твоей ссылке подтверждения твоим словам нет.
            Сообщение отредактировано: D_KEY -
              Цитата Мяут-Настоящий @
              И часто ты путал номера аргументов в awk'е? И нахрена это в высокоуровневый ЯП тащить?

              не понял при чем тут путание аргументов в awk, но попробуй мыслить абстрактно
                Цитата korvin @
                Цитата D_KEY @
                Причем тут это? И как ты собираешься у текста спрашивать, какие операции он поддерживает?

                при том, что удачный парсинг == подтверждение реализации объектом интерфейса.

                Я не понимаю, как можно сравнивать парсинг с программированием.
                  Цитата D_KEY @
                  Валишь. Даже по твоей ссылке подтверждения твоим словам нет.

                  гм... как бы первый же абзац
                  Цитата

                  In computer programming, particularly functional programming and type theory, an algebraic data type (sometimes also called a variant type[1]) is a datatype each of whose values is data from other datatypes wrapped in one of the constructors of the datatype. Any wrapped datum is an argument to the constructor. In contrast to other datatypes, the constructor is not executed and the only way to operate on the data is to unwrap the constructor using pattern matching.


                  Добавлено
                  Цитата D_KEY @
                  Я не понимаю, как можно сравнивать парсинг с программированием.

                  тоже попробуй мыслить абстрактно.

                  парсим текст => (распарсили => работаем с полученными данными) || выдаем ошибку
                  опрашиваем объект о реализации интерфейса => (интерфейс реализованн => работаем с объектом) || выдаем ошибку
                    Цитата korvin @
                    опрашиваем объект о реализации интерфейса

                    Ну дак в моем коде это делает dynamic_cast<Interface*>
                      Цитата korvin @
                      Цитата D_KEY @
                      Валишь. Даже по твоей ссылке подтверждения твоим словам нет.

                      гм... как бы первый же абзац
                      Цитата

                      In computer programming, particularly functional programming and type theory, an algebraic data type (sometimes also called a variant type[1]) is a datatype each of whose values is data from other datatypes wrapped in one of the constructors of the datatype. Any wrapped datum is an argument to the constructor. In contrast to other datatypes, the constructor is not executed and the only way to operate on the data is to unwrap the constructor using pattern matching.

                      Ну и где тут "набор полей"? Где тут противоречие с реализацией scala(scala в статье упоминается в списке языков с поддержкой алг.типов данных)?

                      Цитата
                      парсим текст => (распарсили => работаем с полученными данными) || выдаем ошибку
                      опрашиваем объект о реализации интерфейса => (интерфейс реализованн => работаем с объектом) || выдаем ошибку

                      Да, именно это происходит в языках со статической типизацией. В частности, при инстанцировании шаблона в С++.
                        Цитата Мяут-Настоящий @
                        Цитата korvin @
                        опрашиваем объект о реализации интерфейса

                        Ну дак в моем коде это делает dynamic_cast<Interface*>

                        не делает, нет у нас SomeClass, у нас есть просто объект, неизвестного класса.

                        Добавлено
                        Цитата D_KEY @
                        Да, именно это происходит в языках со статической типизацией. В частности, при инстанцировании шаблона в С++.

                        нет, не происходит. с каким классом шаблон инстанциируешь?
                          Цитата korvin @
                          Цитата Мяут-Настоящий @
                          Цитата korvin @
                          опрашиваем объект о реализации интерфейса

                          Ну дак в моем коде это делает dynamic_cast<Interface*>

                          не делает, нет у нас SomeClass, у нас есть просто объект, неизвестного класса.

                          Откуда он у нас есть?
                            Цитата D_KEY @
                            Ну и где тут "набор полей"?

                            а что это по-твоему, как не набор полей простой структуры?, не ну можно и просто массив, собственно он от структуры только отсутствием разметки и отличается.

                            Добавлено
                            Цитата D_KEY @
                            Откуда он у нас есть?

                            откуда угодно, из сети например
                              Цитата korvin @
                              Цитата D_KEY @
                              Да, именно это происходит в языках со статической типизацией. В частности, при инстанцировании шаблона в С++.

                              нет, не происходит. с каким классом шаблон инстанциируешь?

                              С тем, который "пришел" :) На этапе компиляции же. Тип будет выведен, или будет указан явно.
                                Цитата D_KEY @
                                С тем, который "пришел" :) На этапе компиляции же. Тип будет выведен, или будет указан явно.

                                откуда пришел? как ты выведешь тип готового объекта неизвестного типа в условиях статической типизации (да и в условиях динамической это не просто)?
                                вот давай я щас опишу какой-нить класс на С++, создам объект и скину тебе его двоичное представление. выведешь тип? причем на этапе компиляции обязательно
                                Сообщение отредактировано: korvin -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 215 216 [217] 218 219 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.3360 ]   [ 15 queries used ]   [ Generated: 1.08.26, 14:37 GMT ]