На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (32) « Первая ... 29 30 [31] 32   ( Перейти к последнему сообщению )  
> Язык для обучения программированию
    Цитата korvin @
    Я тоже не совсем понял, но решил, что имеется в виду «нативная» (для языка) бинарная сериализация / бинарное представление объекта в памяти и вспомнил, что в Erlang такое есть.
    Не думаю, что протокол ETF базируется на бинарном представлении объекта в памяти. Например, то же 32-битное целое сериализуется всегда в big-endian, а в памяти оно зависит от платформы. Да и глупо было бы привязывать его к особенностям реализации.
    Сообщение отредактировано: applegame -
      Цитата OpenGL @
      ++ тебе для начала написать нужно, для чего как раз и потребуется обобщённый способ получить все значения.
      Ну вот и вернулись к началу: для дискретных входов нет такого понятия, как арифметика. Определи её и пользуй на здоровье, только тогда это будет уже не дискретный вход. Хотя бы потому, что для каждого такого входа своя уникальная арифметика.
      P.S. Сорри, но продолжать "обучать программированию", пусть даже и на примере отдельно взятого языка, я не буду. Можно попросить vot-а создать раздел "ПОМОЩЬ КОДЕРАМ" наверху главной, чтобы выкладывать там лекции по Computer Science, тогда посмотрим.
      Цитата korvin @
      О каких сильных связях речь?
      Computer Science, Computer Science... you know, you know ;)
      Цитата korvin @
      Зачем при сериализации enum'ов локализация?
      Ну во-первых, там речь была за вывод, а не сериализацию. Во-вторых, а для int и float она зачем?
      Неприкольные вопросы вы задаёте, господа тролли. Прекрасно ж ответы знаете.
      Цитата D_KEY @
      Да и в C++ числовые значения enumerator'ов в enum не обязаны идти подряд и даже быть упорядоченными.
      Ну хоть кто-то глянул чуть пристальнее. Молодец, D_KEY!
      Цитата korvin @
      Не нужен никакой «стандарт на сериализацию». ...
      Драсьти-пожалуйста. Не, однозначно раздел не помешал бы. Причём тут представление данных снаружи? Речь об стандартизации интерфейса с объектом.
        Цитата Qraizer @
        Ну во-первых, там речь была за вывод, а не сериализацию.

        Разве? Ну да ладно тогда.

        Цитата Qraizer @
        Во-вторых, а для int и float она зачем?

        При сериализации — не нужна.

        Цитата Qraizer @
        Computer Science, Computer Science... you know, you know

        Что?

        Цитата Qraizer @
        Речь о стандартизации интерфейса с объектом.

        В смысле механизма рефлексии? Или о каком интерфейсе речь?

        Добавлено
        Цитата Qraizer @
        Ну вот и вернулись к началу: для дискретных входов нет такого понятия, как арифметика. Определи её и пользуй на здоровье, только тогда это будет уже не дискретный вход. Хотя бы потому, что для каждого такого входа своя уникальная арифметика.

        :what:

        Не знаю, что за заморочки с enum'ами у вас там в C++, но во многих других языках, enum — это просто конечное множество литералов с, опционально, приаттаченными к ним какими-то свойствами и получить массив всех значений enum'ного типа не представляет никакой проблемы.
        Сообщение отредактировано: korvin -
          Цитата Qraizer @
          Ну вот и вернулись к началу: для дискретных входов нет такого понятия, как арифметика.

          Я не знаю, зачем ты к этому вернулся, ведь арифметику никто не обсуждал.
            Цитата korvin @
            В смысле механизма рефлексии? Или о каком интерфейсе речь?
            Эм-м... ну можно и так сказать. Ирония в том, в Плюсах уже всё для этого есть, осталось только договориться именно так всем и действовать.
              Цитата Qraizer @
              P.S. Сорри, но продолжать "обучать программированию", пусть даже и на примере отдельно взятого языка, я не буду.

              Пока создается впечатление, что у тебя сильная деформация из-за глубокого изучания одного языка.
                Цитата korvin @
                Не знаю, что за заморочки с enum'ами у вас там в C++, но во многих других языках, enum — это просто конечное множество литералов с, опционально, приаттаченными к ним какими-то свойствами и получить массив всех значений enum'ного типа не представляет никакой проблемы.
                Угу. Но в C/C++ это не так. С подобными перечислениями:
                ExpandedWrap disabled
                  enum
                  {
                    RED,
                    GREEN,
                    BLUE,
                    GRAY  
                  };
                архитектурных проблем не возникает, но вот с подобными:
                ExpandedWrap disabled
                  enum
                  {
                    RED   = 1,
                    GREEN = 2,
                    BLUE  = 4,
                    GRAY  =-1
                  };
                всплывает целый комплекс проблем. По Стандарту C++ валидными значениями для этого перечисления будут [-8...7]. Неожиданно? И неважно, что только четыре из них имеют идентификаторы. Причём это касается только дополнительного кодирования целых, для других вариантов диапазон будет [-7...7], и определяется это как поведение, зависящее от реализации, в данном случае от архитектуры исполнительного устройства. Внимание – вопрос: когда программист хочет коллекцию элементов перечисления, какой из этих двух вариантов он имеет в виду? Валидные значения или-таки явным образом определённые идентификаторы? Внимание – вопрос 2: когда он к GREEN делает ++, он хочет следующее значение или следующий идентификатор? А если к BLUE? А если к GRAY... или -- к RED? А когда он выводит их в поток, он реально хочет увидеть "RED" на выходе? А если вводит, например, из файла, то "Red" подойдёт как значение, кодируемое 1? А если он русский, выставил себе std::locale("ru_RU.UTF8") и хочет видеть "КРАСНЫЙ"?
                Где, в каком Стандарте и как именно это всё прописывать? А главное — зачем вообще пытаться натягивать сову на глобус, если перечисления всегда были предназначены для представления в коде дискретных входов. Даже название "перечисление" говорит, что это просто список значений. Режимы работы стиральной машины, каналы ТВ, список форсмажорных обстоятельств в договоре, типы внешних интерфейсов в ПК, список поддерживаемых движком графических API... А то, что язык позволяет с ними ещё и дополнительные выкрутасы вытворять, так это просто бонус. Мол, хотите юзать, на здоровье, под вашу ответственность.
                Меня тут пытаются подвести под обвинение за слишком узкий взгляд на программирование в связи с моим крайне лояльным отношением к C++ и более прохладным отношением к остальным языкам. По факту же наоборот, это пока единственный встретившийся мне язык, который не сосредотачивается на популизме масс в контексте популярности трендов, а ориентирован на программирование с точки зрения научного подхода к IT.
                Сообщение отредактировано: Qraizer -
                  Цитата Qraizer @
                  а ориентирован на программирование как научном подходе к IT.

                  Что для тебя научный подход? Для меня это набор методов получения знаний, основанный на эмпирических наблюдениях, логике и эмпирических же проверках. Я не понимаю, при чем тут C++, да и вообще программирование. Хотя конечно я считаю, что оно может быть полезно для науки. Но ты очевидно не об этом.

                  Добавлено
                  Цитата Qraizer @
                  Внимание – вопрос: когда программист хочет коллекцию элементов перечисления, какой из этих двух вариантов он имеет в виду? Валидные значения или-таки явным образом определённые идентификаторы?

                  Сложно придумать кейс, где нужны не идентификаторы. Кстати, надо будет глянуть стандарт на тему валидных значений. Если сможешь привести цитату или пункты, на которые ссылаешься, то будет отлично.

                  Цитата
                  когда он к GREEN делает ++, он хочет следующее значение или следующий идентификатор?

                  Неважно, так как не нужен ++ для enum.

                  Цитата
                  Даже название "перечисление" говорит, что это просто список значений. Режимы работы стиральной машины, каналы ТВ, список форсмажорных обстоятельств в договоре, типы внешних интерфейсов в ПК, список поддерживаемых движком графических API...

                  Именно. И что тебя смущает тогда в желании вывести это список или пройтись по нему?
                    Цитата Qraizer @
                    Внимание – вопрос: когда программист хочет коллекцию элементов перечисления, какой из этих двух вариантов он имеет в виду

                    Он имеет ввиду что угодно, что сможет использовать как for(EnumType value : { RED, GREEN, BLUE, GRAY}), но без явного перечисления всех значений где-либо, кроме объявления enum-а.

                    Цитата Qraizer @
                    А если вводит, например, из файла, то "Red" подойдёт как значение, кодируемое 1? А если он русский, выставил себе std::locale("ru_RU.UTF8") и хочет видеть "КРАСНЫЙ"?

                    Почему мне кажется, что ты просто хочешь показать, как хорошо ты знаешь плюсы? :D Тут каждый первый оппонент тебе пишет, что не надо это в автоматической сериализации в строку, нужно просто получить человекочитаемое строковое значение enum-а как есть. Вот прямо как есть без выпендрежа "а что, а если". Этого ВНЕЗАПНО достаточно для 99% случаев. Да и даже кастомизировать несложно - достаточно сделать какой-нибудь std::serializer<T>, и, специализируя его, учитывать в сериализации хоть локаль, хоть фазу Луны.
                      использовать локальные форматы в протоколах — крайне плохая идея.
                        Я опять про питон.
                        Когнитивный диссонанс №1
                        Вначале создаю (объект) холст, затем перо. Всё работает:
                        ExpandedWrap disabled
                          import turtle
                          w = turtle.Screen()
                          w.title("TEST")
                          w.setup(500,500)
                          w.bgcolor("gray")
                           
                          p = turtle.Pen()
                          p.color("red")
                          p.pensize(3)
                          p.fillcolor("gray")


                        Затем ничего не создаю: ни пера, ни холста. И опять всё работает :blink:
                        ExpandedWrap disabled
                          import turtle
                          turtle.color("red")
                          turtle.fillcolor("gray")
                          turtle.pensize(3)
                           
                          turtle.bgcolor("gray")
                          turtle.setup(500, 500)
                          turtle.title("TEST")


                        Добавлено
                        Когнитивный диссонанс №2
                        Если в начале первой программы пишу turtle.reset(), а потом задаю цвет пера и что-то рисую, то на холсте в позиции (0,0) отображается чёрная стрелка.
                        Если не пишу turtle.reset(),то всё нормально.

                        А вот вторая программа на turtle.reset() не реагирует.
                        Сообщение отредактировано: swf -
                          Видимо, есть холст и перо по умолчанию. А я создаю уже новые объекты, холст и перо.
                          Команда turtle.reset() очищает тот холст, который по умолчанию, поэтому в центре экрана и висит чёрная стрелка.
                          Непонятно только, как два холста друг на друга накладываются. Просвечивают?
                            если хочется черепашек, может тогда не питон а лого?
                            https://www.calormen.com/jslogo/
                            Сообщение отредактировано: applegame -
                              Спасибо, но малому сильно нравится питон :rolleyes:
                              Уже первую игру почти написали: PUT ONE IN BULLSEYE!
                              Булзай (бычий глаз) оказался аналогом нашего яблочка.

                              ЗЫ. Вернее, я уже написала, сегодня сама полчаса в эту игру играла :D
                              Малому ещё надо объяснить, как на эвклидовой плоскости считается расстояние между двумя точками и записывается уравнение окружности.
                                Прикреплённая картинка
                                Прикреплённая картинка
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (32) « Первая ... 29 30 [31] 32 


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1671 ]   [ 18 queries used ]   [ Generated: 18.04.24, 01:12 GMT ]