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

    И C# тоже?

    А что там?

    Цитата
    Цитата trainer @
    Синтаксический сахар - это когда одна конструкция заменяет другую или последовательность других.

    Он и есть. (я о С++, если не так поняли)

    Кстати, ты о каких конструкциях в С++ говоришь?

    Цитата
    Цитата D_KEY @
    И это очень глупо, неудобно и ничем не оправдано.

    А по мне (хотя мне без разницы) - глупо, неудобно и ничем не оправдано - разбрасывать объявления по всему тексту программы, вопрос вкуса и воспитания.

    Зачем разбрасывать-то? Надо - объяви и используй.

    Добавлено
    Цитата DesweR @
    Цитата korvin @
    покажи аналог на паскале =)

    Аналог чего? Зеркальности семантики?

    Какой семантики? Это синтаксическое дерево, записанное в s-exprs
      Цитата korvin @
      полностью идентичный код в синтаксисе паскаля. я перевел из s-выражения в С без преобразований AST.

      Ну молодец :) И?

      Цитата D_KEY @
      А что там?

      К Мяуту.

      Цитата D_KEY @
      Кстати, ты о каких конструкциях в С++ говоришь?

      Да всё о том же "int N = 64".
      Сообщение отредактировано: DesweR -
        Цитата DesweR @
        Цитата D_KEY @
        Кстати, ты о каких конструкциях в С++ говоришь?

        Да всё о том же "int N = 64".

        И где тут синтаксический сахар?

        Добавлено
        Цитата DesweR @
        Цитата korvin @
        полностью идентичный код в синтаксисе паскаля. я перевел из s-выражения в С без преобразований AST.

        Ну молодец :) И?

        Так покажи, как перевести его в паскаль...
          Цитата D_KEY @
          И где тут синтаксический сахар?

          Цитата trainer
          Синтаксический сахар - это когда одна конструкция заменяет другую или последовательность других.

          ExpandedWrap disabled
            int N;
            N = 64;
             
            int N = 64;


          Цитата D_KEY @
          Какой семантики? Это синтаксическое дерево, записанное в s-exprs

          Почитал, понял о чём речь.
            Цитата DesweR @
            Почитал, понял о чём речь.

            Так ты пример приведи :D Мда, как можно спорить с человеком, который не имеет понятия о чем идет речь... ? :ph34r:
            Сообщение отредактировано: KILLER -
              Цитата KILLER @
              Так ты пример приведи Мда, как можно спорить с человеком, который не имеет понятия о чем идет речь... ?

              А сам можешь привести? Ну тогда не встревай ;)
                Цитата DesweR @
                А сам можешь привести? Ну тогда не встревай

                Это будет довольно затруднительно на паскале, хотя с помощью вложенных процедур наверное можно такое сделать, чот то типо:
                ExpandedWrap disabled
                  program my
                  var
                  i: integer;
                  begin
                     i := 0;
                     print(i);
                     begin
                        i := 1;
                        print(i);
                        i := 2;
                         print(i)
                     end
                     begin
                  ...
                     end;
                  end;

                Единственный прикол, в том что в С++ коде создаются переменные в локальных блоках, а тут такого нельзя, разве что с помощью внутрених порцедур какнить...
                Сообщение отредактировано: KILLER -
                  Цитата KILLER @
                  Единственный прикол, в том что в С++ коде создаются переменные в локальных блоках, а тут такого нельзя, разве что с помощью внутрених порцедур какнить...

                  вот именно, я не зря там написал об ошибке компиляции print(j) во внешне блоке. более того, помнится я показывал, что члены объекта self в методе перекрывают параметры метода. я сейчас не могу проверить, но интересно, на что будет ссылаться x в подпроцедуре Gee:
                  ExpandedWrap disabled
                    type
                      Foo = class
                        x :Integer;
                        procedure Bar;
                      end;
                     
                    procedure Foo.Bar; // <- кстати вот здесь точка с запятой убивает просто =)
                      procedure Gee;
                      var x :Integer;
                      begin
                        WriteLn(x);
                      end;
                    begin
                      Gee;
                    end;
                    Цитата DesweR @
                    Цитата D_KEY @
                    И где тут синтаксический сахар?

                    Цитата trainer
                    Синтаксический сахар - это когда одна конструкция заменяет другую или последовательность других.

                    ExpandedWrap disabled
                      int N;
                      N = 64;
                       
                      int N = 64;

                    Так вот это не синтаксический сахар. Потому что в общем случае в коде вида
                    ExpandedWrap disabled
                      T t;
                      t = something;

                    вызывается сначала конструктор по умолчанию, а потом оператор присваивания.
                    В коде же
                    ExpandedWrap disabled
                      T t = something;

                    вызывается только конструктор с аргументом something. Так что это не эквивалентные отрывки, и второй случай не может считаться просто синтаксическим сахаром.
                    Сообщение отредактировано: MyNameIsIgor -
                      Цитата korvin @
                      кстати вот здесь точка с запятой убивает просто
                      Это еще ничего. А вот такое:
                      ExpandedWrap disabled
                        function имя(параметры): результат; stdcall; external библиотека;
                      Зачем здесь эти ';'? При том что имеем другой вариант:
                      ExpandedWrap disabled
                        property Enabled: Boolean read GetEnabled write SetEnabled stored IsEnabledStored default True;
                      Никаких тебе ';' внутри определения.
                        Цитата korvin @
                        более того, помнится я показывал, что члены объекта self в методе перекрывают параметры метода.

                        Т.е?

                        ExpandedWrap disabled
                          type
                            TFoo = class
                              x: Integer;
                              procedure Bar;
                            end;
                           
                          procedure TFoo.Bar; // <- ну и как ты без ; будешь проверять валидность? любимыми (procedure|function|const|type|var|begin)? =)
                            procedure Gee;
                            var
                              x: Integer;
                            begin
                              x := 222;
                              WriteLn(x);
                            end;
                           
                          begin
                            Gee;
                          end;
                           
                           
                          begin
                            Foo.x := 111;
                            Foo.Bar; //получим 222
                          end;


                        Цитата trainer @
                        function имя(параметры): результат; stdcall; external библиотека;

                        Это директивы.

                        Цитата trainer @
                        property Enabled: Boolean read GetEnabled write SetEnabled stored IsEnabledStored default True;

                        А это свойства, с геттерами и сеттерами.
                        Вещи ортогональные.
                        Сообщение отредактировано: DesweR -
                          Цитата DesweR @
                          А это свойства, с геттерами и сеттерами.
                          Да что ты говоришь? Никогда бы не подумал!
                          И то и другое - объявление.

                          Добавлено
                          Цитата DesweR @
                          Это директивы.
                          т.е. я могу отдельно без procedure/function написать только stdcall? или только external?
                            Цитата DesweR @
                            Цитата korvin @
                            более того, помнится я показывал, что члены объекта self в методе перекрывают параметры метода.

                            Т.е?

                            т.е.
                            ExpandedWrap disabled
                              type
                                Foo = class
                                  x :Integer;
                                  procedure Bar (x :Integer);
                                end;
                               
                              procedure Foo.Bar (x :Integer);
                              begin
                                WriteLn(x); // печатается self.x, а не параметр x. в Delphi vs C++ было обсуждение
                              end;


                            ExpandedWrap disabled
                              procedure TFoo.Bar; // <- ну и как ты без ; будешь проверять валидность? любимыми (procedure|function|const|type|var|begin)? =)

                            валидность чего?
                            ExpandedWrap disabled
                              void Foo = fun () {
                                void Gee = fun () { int x = 222; WriteLn(x) };
                                Gee()
                              };
                               
                              int Bar = fun (int x, y) (stdcall, extern Lib) {
                                return x + y
                              };
                              Цитата DesweR @
                              Цитата D_KEY @
                              И где тут синтаксический сахар?

                              Цитата trainer
                              Синтаксический сахар - это когда одна конструкция заменяет другую или последовательность других.

                              ExpandedWrap disabled
                                int N;
                                N = 64;
                                 
                                int N = 64;

                              У этих конструкций разная семантика.
                                Цитата trainer @
                                т.е. я могу отдельно без procedure/function написать только stdcall? или только external?

                                Естественно нет.

                                Цитата korvin @
                                WriteLn(x); // печатается self.x, а не параметр x. в Delphi vs C++ было обсуждение

                                А где именно не помнишь? И печатается параметр, а self.x.

                                Цитата korvin @
                                валидность чего?

                                Я снова тебя не понимаю...

                                Цитата D_KEY @
                                У этих конструкций разная семантика.

                                В таком случае, в Delphi это будет синтаксический сахар.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 117 118 [119] 120 121 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.2367 ]   [ 14 queries used ]   [ Generated: 30.07.26, 17:58 GMT ]