Детские ошибки
От: Аноним  
Дата: 30.05.06 15:06
Оценка: 3 (1) :))) :))) :))) :))) :))) :))) :)
    x =- 5; // уменьшаем x на 5

Кто видит здесь ошибку без отладчика, поднимите руку.
Re: Детские ошибки
От: Calc Россия  
Дата: 30.05.06 21:09
Оценка: :))) :)))
Здравствуйте, <Аноним>, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

Один раз вечером думал почему не работает, смотрел код

int p = open....

if(p =! 0)
{
....
}

ну и так далее, было поздно, пошел спать, утром было смешно
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Детские ошибки
От: ZevS  
Дата: 01.06.06 08:27
Оценка: -5
Здравствуйте, Mace Windu, Вы писали:

MW>Здравствуйте, <Аноним>, Вы писали:


А>>
А>>    x =- 5; // уменьшаем x на 5
А>>

А>>Кто видит здесь ошибку без отладчика, поднимите руку.

MW>Ошибка в комментарии + стиль кодирования плохой


Полностью согласен!! Использование += -= ++ -- и тд. вообще надо бы запретить. Это синтаксические уродцы.
Re: Детские ошибки
От: Mace Windu  
Дата: 31.05.06 09:07
Оценка: 1 (1) +1
Здравствуйте, <Аноним>, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

Ошибка в комментарии + стиль кодирования плохой
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[3]: Детские ошибки
От: Какая разница Украина  
Дата: 01.06.06 20:11
Оценка: +1 :)
Здравствуйте, ZevS, Вы писали:


ZS>Полностью согласен!! Использование += -= ++ -- и тд. вообще надо бы запретить. Это синтаксические уродцы.


Вам пора на прием к доктору Губанову
Один из лучших специалистов по лечению синтаксического оверхеда
!0xDEAD
Re[12]: Детские ошибки
От: Аноним  
Дата: 02.06.06 16:11
Оценка: 3 (1)
ZS>
ZS>  it.Increment();
ZS>

много букфф
Re[2]: Детские ошибки
От: Klirik  
Дата: 01.06.06 05:03
Оценка: 1 (1)
Здравствуйте, <Аноним>, Вы писали:

А>Еще вижу ошибку, незнаю к какому типу отнести эту ошибку, то ли к ДНК (без обид), то ли к ILE (сам тока что придумал Indus Like Error).


А индус тут, кстати, ошибку не найдёт ни с отладчиком, ни без отладчика. Просто потому что он русского языка не понимает .

Комменты на русском — это очень "по-домашнему".
... << RSDN@Home 1.2.0 alpha rev. 651>>
Re[6]: Детские ошибки
От: CreatorCray  
Дата: 01.06.06 12:00
Оценка: 1 (1)
Здравствуйте, ZevS, Вы писали:

ZS>В точку. Именно поэтому использование операторов -- ++ есть зло. В любом примере. Вообще, ввод их в язык считаю ходом довольно неудачным.

"Вы не любите кошек? Это потому, что вы не умеете их готовить!" (С) не помню чей

Может не стоит так категорически объявлять злом то, с чем надо уметь обращаться?
И перестать обвинять язык в кривости написанного кода.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Детские ошибки
От: ansi  
Дата: 05.06.06 03:46
Оценка: 1 (1)
Здравствуйте, ekamaloff, Вы писали:

A>>Насколькоя я знаю, в изначальном C (или B) именно так эти операторы и записывались. Так что, все правильно Компилятор у тебя просто слишком новый


E> А как записывалось присвоение отрицательного значения?


Полагаю, что с пробелом. Вот отрывок из доки к flex:

Функция yyless() в различных обстоятельствах может быть использована для повторной обработки текста. Рассмотрим проблему определения неоднозначного выражения =-a в старом варианте СИ. Допустим, что это требуется представить как =- a для последующей печати. Можно применить следующее правило:

=-[a-zA-Z] {
printf("Operator(=-)ambiguous\n");
yyless(yyleng-1);
... action for =- ...
}

Будет печататься сообщение, после каждого оператора буква будет возвращаться во входной поток, а оператор будет трактоваться как =-.

Наоборот, может потребоваться трактовать это как = -a; чтобы добиться этого, уберите знак минус и букву для ввода. Интерпретация будет выполнена следующими строками:

=-[a-zA-Z {
printf("Operator(=-)ambiguous\n");
yyless(yyleng-2);
... action for = ...
}

Re: Детские ошибки
От: Mikhail Polykovsky Россия  
Дата: 30.05.06 15:33
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

В смысле
x = -5 ?
Re: Детские ошибки
От: Аноним  
Дата: 30.05.06 21:28
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

Синтаксической ошибки не вижу. Ошибка семантическая. Имелось ввиду:

x -= 5;


Еще вижу ошибку, незнаю к какому типу отнести эту ошибку, то ли к ДНК (без обид), то ли к ILE (сам тока что придумал Indus Like Error). Кто же такие комменты то пишет ?
Может вы еще пишете так:

int x; // описываем переменную типа int
x = 5; // присваиваем x значение 5
...


Для меня это тоже ошибка.
Re: Детские ошибки
От: Skleroz Россия  
Дата: 31.05.06 05:40
Оценка: :)
Здравствуйте, <Аноним>, Вы писали:

Speccy. 10 лет назад. Два дня не мог найти ошибку. Это я так A на 0 проверял.
LD A, (HL)
JP Z, xxxx
<< точка сборки в — 0 — 2000 Rainbow Blood — Track 5 |>>
Re: Детские ошибки
От: Аноним  
Дата: 31.05.06 11:56
Оценка: :)
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

А если так:

    x = 0;
    x =- 5; // уменьшаем x на 5


Может показаться извращенным, но без ошибки
Re[5]: Детские ошибки
От: ZevS  
Дата: 01.06.06 11:47
Оценка: -1
Здравствуйте, ekamaloff, Вы писали:

E>Здравствуйте, ZevS, Вы писали:


ZS>>Вам нравятся эти операторы? И же выведет такой код? И почему?

ZS>>
ZS>>    int i = 2;
ZS>>    i += i--;
ZS>>    printf("%d", i);
ZS>>


E>Тут кажись неопределенное поведение — двойная модификация переменной между точками следования. А вообще за такой код руки надо отрывать а не приводить в качестве примера.


В точку. Именно поэтому использование операторов -- ++ есть зло. В любом примере. Вообще, ввод их в язык считаю ходом довольно неудачным.
Re[11]: Детские ошибки
От: ZevS  
Дата: 01.06.06 13:24
Оценка: -1
Здравствуйте, kan_izh, Вы писали:

...

_>Да, куча языков, которые называются "васик", это не компиляторы/интерпретаторы. Разницу понимаешь?


Говоря о языках — разницы ни какой. Кстати VB6 — такой же компилятор, как и C#.

_>Попробуй-ка один исходный файл выполнить как VBScript, VBA и QBasic.


Если там написано:
   i = i + 2
— результатом всегда будет увеличение i на 2.

_>А о чём? С учётом того, что С++ никогда не рекомендовался для юных программистов.


А кому он рекомендован? Что вообще означает — рекомендован? Мне надо сделать качественный продукт в кротчайшее время с минимальными затратами. Извините, но ваша фраза попахивает снобизмом.

>> Провокационный вопрос: А к goto вы как относитесь?

_>Когда сам пишу, стараюсь обходить его использование. И это всегда удаётся без каких либо проблем. Когда читаю чужой код
_>- пофиг — есть или нет.
Re[5]: Детские ошибки
От: Xander Zerge Россия www.zerge.com
Дата: 02.06.06 04:03
Оценка: -1
Здравствуйте, ekamaloff, Вы писали:

ZS>>Вам нравятся эти операторы? И же выведет такой код? И почему?

ZS>>
ZS>>    int i = 2;
ZS>>    i += i--;
ZS>>    printf("%d", i);
ZS>>


E>Тут кажись неопределенное поведение — двойная модификация переменной между точками следования. А вообще за такой код руки надо отрывать а не приводить в качестве примера.


Почему неопределённое? Есть чётко прописанный приоритет операторов и порядок их выполнения. Здесь порядок — справа налево: сначала вычисление i, потом уменьшение i на единицу, потом прибавление к новому значению этой переменной её значения старого, перед декрементом. Итого, в результате, получится 3.
А код, да. Не для практики, а из серии задач для олимпиад по информатике.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Серёжа Новиков,
программист
Re[5]: Детские ошибки
От: fmiracle  
Дата: 02.06.06 06:11
Оценка: :)
Vi2>Здравствуйте, fmiracle, Вы писали:

F>>Да еще и неправильный коммент?


Vi2>Коммент-то как раз правильнй, это код не правильный.


Ну здрасте!
В приведенном фрагменте есть две части — присвоение Х значения -5 и комметарий, что это не присвоение, а уменьшение. Соответственно, любой и них может быть неправильным!

Признаю — в данном тексте код имеет больше шансов оказаться неправильным, но абсолютно точно это ниоткуда не следует

Так что не надо!
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[12]: Детские ошибки
От: Sergei  
Дата: 02.06.06 13:02
Оценка: +1
Здравствуйте, ZevS, Вы писали:

ZS>Здравствуйте, Sergei, Вы писали:

ZS>...

S>>Например, при работе с итераторами


S>>
S>>for(<Type>::iterator it=...begin();it!=..end();++it)
S>>...

S>>

S>>На самом деле не известно что за объект (какого размера) iterator и делать лишнюю копию незачем(что произошло бы если использовали it=it+1 или it++)...

ZS>А чем это лучше чем


ZS>
ZS>  it.Increment();
ZS>


Да это выход, но если iterator вдруг станет int, то придется перелапачивать вес код...
Re: Детские ошибки
От: BlackHeretic Израиль  
Дата: 30.05.06 15:07
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.
ICQ 156156278
Re: Детские ошибки
От: Sash_xp  
Дата: 30.05.06 15:10
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

x -= 5
Re: Детские ошибки
От: HiSH Россия http://m0riarty.ya.ru
Дата: 30.05.06 15:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.
Re: Детские ошибки
От: vitaly_spb Россия  
Дата: 30.05.06 15:22
Оценка:
А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

— вот для чего этот значок нужен!
...Ei incumbit probatio, qui dicit, non qui negat...
Re: Детские ошибки
От: AlexWlad  
Дата: 30.05.06 15:29
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

Ща запинаете, НО... на Паскале такая хрень даже компиляцию не пройдет!!!
Re: Детские ошибки
От: Amidlokos Россия  
Дата: 30.05.06 15:40
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

WARNING: expression "to_be || !to_be" is always true
Re: Детские ошибки
От: Хэлкар  
Дата: 30.05.06 17:29
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.
Re[2]: Детские ошибки
От: DSD Россия http://911.ru/cv
Дата: 30.05.06 21:11
Оценка:
Здравствуйте, Mikhail Polykovsky, Вы писали:

MP>В смысле

MP>x = -5 ?
да, на паскакале это не присвоение, а сравнение.
присвоение было бы:
x := -5;
--
DSD
Re: Детские ошибки
От: abalaba Голландия http://abalaba.livejournal.com
Дата: 31.05.06 06:47
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

!
Re: Детские ошибки
От: Chipsеt Россия http://merlinko.com
Дата: 31.05.06 06:49
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

"Всё что не убивает нас, делает нас сильнее..."
Re[2]: Детские ошибки
От: DOOM Россия  
Дата: 31.05.06 06:55
Оценка:
Здравствуйте, AlexWlad, Вы писали:

AW>Здравствуйте, Аноним, Вы писали:


А>>
А>>    x =- 5; // уменьшаем x на 5
А>>

А>>Кто видит здесь ошибку без отладчика, поднимите руку.

AW>Ща запинаете, НО... на Паскале такая хрень даже компиляцию не пройдет!!!

Причем тут это? В паскале = — оператор сравнения, а здесь имеется ввиду оператор присваивания... Так что надо было бы писать x:=- 5 — а это вполне пройдет...
Re[2]: Детские ошибки
От: Аноним  
Дата: 01.06.06 04:15
Оценка:
Здравствуйте, Skleroz, Вы писали:

S>Здравствуйте, <Аноним>, Вы писали:


S>Speccy. 10 лет назад. Два дня не мог найти ошибку. Это я так A на 0 проверял.

S>
S>LD A, (HL)
S>JP Z, xxxx
S>

Хм, случай не редкий, но чтоб два дня....
Re[3]: Детские ошибки
От: ZevS  
Дата: 01.06.06 09:23
Оценка:
2 CreatorCray

Вам нравятся эти операторы? И же выведет такой код? И почему?
    int i = 2;
    i += i--;
    printf("%d", i);
Re: Детские ошибки
От: Ананий  
Дата: 01.06.06 09:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

В универе на втором курсе перешли с Паскаля на Си
int a = 5, b = 6

if (a = b)
{
// Тут долго бился головой в монитор...
}
Re[4]: Детские ошибки
От: ekamaloff Великобритания  
Дата: 01.06.06 10:49
Оценка:
Здравствуйте, ZevS, Вы писали:

ZS>Вам нравятся эти операторы? И же выведет такой код? И почему?

ZS>
ZS>    int i = 2;
ZS>    i += i--;
ZS>    printf("%d", i);
ZS>


Тут кажись неопределенное поведение — двойная модификация переменной между точками следования. А вообще за такой код руки надо отрывать а не приводить в качестве примера.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[7]: Детские ошибки
От: ZevS  
Дата: 01.06.06 12:20
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, ZevS, Вы писали:


ZS>>В точку. Именно поэтому использование операторов -- ++ есть зло. В любом примере. Вообще, ввод их в язык считаю ходом довольно неудачным.

CC>"Вы не любите кошек? Это потому, что вы не умеете их готовить!" (С) не помню чей

CC>Может не стоит так категорически объявлять злом то, с чем надо уметь обращаться?

CC>И перестать обвинять язык в кривости написанного кода.

1. Результат выполнения программы должен быть предсказуем и не зависить он компилятора. Это мое стойкое убеждение.
2. Языки программирования создают для людей, а не для компьютеров. Следоватьельно код должен быть легко читаем, и это — прерогатива языка. Очень тяжело разгребать чей то кривой код, особенно если он (кривой писатьель) поощряется синтаксисом языка. А как показывает практика, юные программисты очень любят писать код с использованием максимума языковых фенечек.
3. С++ — отличный язык отлично себя зарекомендовавший, но не надо его возводить в абсолют.
Re[8]: Детские ошибки
От: kan_izh Великобритания  
Дата: 01.06.06 12:36
Оценка:
ZevS wrote:

> 1. Результат выполнения программы должен быть предсказуем и не зависить

> он компилятора. Это мое стойкое убеждение.
Если у языка есть хотя бы больше одного компилятора, то это практически невозможно.
А у С++ (а если ещё С посчитать) — десятки.

> 2. Языки программирования создают для людей, а не для компьютеров.

> Следоватьельно код должен быть легко читаем, и это — прерогатива языка.
> Очень тяжело разгребать чей то кривой код, особенно если он (кривой
> писатьель) поощряется синтаксисом языка. А как показывает практика, юные
> программисты очень любят писать код с использованием максимума языковых
> фенечек.
Провокационный вопрос: какой язык не позволяет писать криво?

> 3. С++ — отличный язык отлично себя зарекомендовавший, но не надо его

> возводить в абсолют.
Вот и не надо возводить в абсолют вред ++/--.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[9]: Детские ошибки
От: ZevS  
Дата: 01.06.06 12:55
Оценка:
Здравствуйте, kan_izh, Вы писали:

_>ZevS wrote:


>> 1. Результат выполнения программы должен быть предсказуем и не зависить

>> он компилятора. Это мое стойкое убеждение.
_>Если у языка есть хотя бы больше одного компилятора, то это практически невозможно.
_>А у С++ (а если ещё С посчитать) — десятки.

Да что вы говорите. Есть куча реализаций Васика и во всех реализациях сложение и вычитание целых цисел работает одинаково.

>> 2. Языки программирования создают для людей, а не для компьютеров.

>> Следоватьельно код должен быть легко читаем, и это — прерогатива языка.
>> Очень тяжело разгребать чей то кривой код, особенно если он (кривой
>> писатьель) поощряется синтаксисом языка. А как показывает практика, юные
>> программисты очень любят писать код с использованием максимума языковых
>> фенечек.
_>Провокационный вопрос: какой язык не позволяет писать криво?

Я не о том.

>> 3. С++ — отличный язык отлично себя зарекомендовавший, но не надо его

>> возводить в абсолют.
_>Вот и не надо возводить в абсолют вред ++/--.

Провокационный вопрос: А к goto вы как относитесь?
Re[10]: Детские ошибки
От: kan_izh Великобритания  
Дата: 01.06.06 13:08
Оценка:
ZevS wrote:

>> > 1. Результат выполнения программы должен быть предсказуем и не зависить

>> > он компилятора. Это мое стойкое убеждение.
> _>Если у языка есть хотя бы больше одного компилятора, то это
> практически невозможно.
> _>А у С++ (а если ещё С посчитать) — десятки.
> Да что вы говорите. Есть куча реализаций Васика и во всех реализациях
> сложение и вычитание целых цисел работает одинаково.
Да, куча языков, которые называются "васик", это не компиляторы/интерпретаторы. Разницу понимаешь?
Попробуй-ка один исходный файл выполнить как VBScript, VBA и QBasic.

>> > 2. Языки программирования создают для людей, а не для компьютеров.

>> > Следоватьельно код должен быть легко читаем, и это — прерогатива языка.
>> > Очень тяжело разгребать чей то кривой код, особенно если он (кривой
>> > писатьель) поощряется синтаксисом языка. А как показывает практика, юные
>> > программисты очень любят писать код с использованием максимума языковых
>> > фенечек.
> _>Провокационный вопрос: какой язык не позволяет писать криво?
> Я не о том.
А о чём? С учётом того, что С++ никогда не рекомендовался для юных программистов.

>> > 3. С++ — отличный язык отлично себя зарекомендовавший, но не надо его

>> > возводить в абсолют.
> _>Вот и не надо возводить в абсолют вред ++/--.
> Провокационный вопрос: А к goto вы как относитесь?
Когда сам пишу, стараюсь обходить его использование. И это всегда удаётся без каких либо проблем. Когда читаю чужой код
— пофиг — есть или нет.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: Детские ошибки
От: FunnyRabbit Россия  
Дата: 01.06.06 13:21
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

Ну если х было объявлено как 0 (ноль) перед этим, то ошибки нет.
То что меня не убивает, делает меня умнее.
Re[12]: Детские ошибки
От: kan_izh Великобритания  
Дата: 01.06.06 14:12
Оценка:
ZevS wrote:

> _>Да, куча языков, которые называются "васик", это не

> компиляторы/интерпретаторы. Разницу понимаешь?
> Говоря о *языках* — разницы ни какой.
Если ты будешь всегда работать под одним и тем же компилером C++, то ты не скоро столкнёшься с проблемами UB.

> Кстати VB6 — такой же компилятор, как и C#.

Это не важно. Важно то, что для VB6 есть всего один продукт (и фактически только одна версия), который с ним работает.

> _>Попробуй-ка один исходный файл выполнить как VBScript, VBA и QBasic.

> Если там написано:
> i = i + 2
> — результатом всегда будет увеличение i на 2.
И что? В C++, не поверишь, тоже.

> _>А о чём? С учётом того, что С++ никогда не рекомендовался для юных

> программистов.
> А кому он рекомендован? Что вообще означает — рекомендован? Мне надо
> сделать качественный продукт в кротчайшее время с минимальными
> затратами. Извините, но ваша фраза попахивает снобизмом.
"Качественный" в данном случае расплывчатое понятие. Или ты сразу можешь сказать, какой язык
подойдёт при таких требованиях?
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[13]: Детские ошибки
От: ZevS  
Дата: 01.06.06 14:36
Оценка:
Здравствуйте, kan_izh, Вы писали:

...

>> _>Попробуй-ка один исходный файл выполнить как VBScript, VBA и QBasic.

>> Если там написано:
>> i = i + 2
>> — результатом всегда будет увеличение i на 2.
_>И что? В C++, не поверишь, тоже.

На васике нет неоднозначностей, на C++ — есть. Я хотел сказать это. На васике выражение a+++b трактуется всегда однозначно.

>> _>А о чём? С учётом того, что С++ никогда не рекомендовался для юных

>> программистов.
>> А кому он рекомендован? Что вообще означает — рекомендован? Мне надо
>> сделать качественный продукт в кротчайшее время с минимальными
>> затратами. Извините, но ваша фраза попахивает снобизмом.
_>"Качественный" в данном случае расплывчатое понятие. Или ты сразу можешь сказать, какой язык
_>подойдёт при таких требованиях?

Мое исходное сообщение было про синтаксис языка, а не язык/библиотеки и что на чем надо...
Согласитесь что неоднозначный синтаксис — плохо. Примените двоемыслие, когда С++ — хорошо, а его неоднозначный синтаксис — плохо.
Re[14]: Детские ошибки
От: kan_izh Великобритания  
Дата: 01.06.06 15:11
Оценка:
ZevS wrote:

> На васике нет неоднозначностей, на C++ — есть. Я хотел сказать это. На

> васике выражение a+++b трактуется всегда однозначно.
Ах, если бы только это сказывалось на качестве языка....

> Мое исходное сообщение было про синтаксис языка, а не язык/библиотеки и

> что на чем надо...
> Согласитесь что неоднозначный синтаксис — плохо.
Чем больше выразительность языка, тем сложнее синтаксис. Вот у русского языка такой сложный синтаксис, это плохо? Да,
для безграмотных, но для грамотных людей — возможность писать выразительно.

> Примените двоемыслие,

А вы не пытайтесь всё делить на хорошо и плохо, это религиозные понятия.

> когда С++ — хорошо, а его неоднозначный синтаксис — плохо.

Ладно, тогда можно раскрыть понятие "рекомендован". Кто не обращает внимание на синтаксис языка, тому рекомендован.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[15]: Детские ошибки
От: ZevS  
Дата: 01.06.06 15:18
Оценка:
Кстати, почитайте статью Вирта в последнем RSDN-е. Интересная статейка.
Re[16]: Детские ошибки
От: kan_izh Великобритания  
Дата: 01.06.06 17:25
Оценка:
ZevS wrote:

> Кстати, почитайте статью Вирта в последнем RSDN-е. Интересная статейка.

Странная у него там критика. Теоретик он. Не принимает простое правило "если это глупо, но работает, значит это не глупо".
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[8]: Детские ошибки
От: Sergei  
Дата: 01.06.06 18:39
Оценка:
Здравствуйте, ZevS, Вы писали:

++ += и т.п. особенно префиксные иногда полезны (например, для оптимизции), если они работают с пользовательскими объектами (например, string);
Re[3]: Детские ошибки
От: fmiracle  
Дата: 01.06.06 20:17
Оценка:
K>Комменты на русском — это очень "по-домашнему".

Причем тут русский?
Нахрена коммент к коду, который сам себя документирует?

Да еще и неправильный коммент?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Детские ошибки
От: Skleroz Россия  
Дата: 01.06.06 23:19
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Хм, случай не редкий, но чтоб два дня....


Потому и запомнился.
Я тогда с отладчиком почти не дружил, а когда смотрел листинг этого участка, почему-то видел на одну команду больше
<< точка сборки в — — — Track 4 |>>
Re: Детские ошибки
От: Блудов Павел Россия  
Дата: 02.06.06 02:07
Оценка:
Здравствуйте все!

Я вчера вот такое написал. Кто увидит ошибку не подглядывая в репозиторий поднимите руку
        public IList ExecuteScalarList(IList list, Type type, NameOrIndexParameter nip)
        {
            if (_prepared)
                InitParameters(CommandAction.Select);

            //object nullValue = _mappingSchema.GetNullValue(type);

            using (IDataReader dr = ExecuteReaderInternal())
            {
                while (dr.Read())
                {
                    object value = dr.GetValue(nip.ByName ?
                        dr.GetOrdinal(nip.Name) : nip.Index);

                    if (value == null || value.GetType() != type)
                        value = value is DBNull? null: Convert.ChangeType(value, type);

                    list.Add(value);
                }
            }

            return list;
        }


Сообразил уже когда в постель лёг.
Всю ночь ворочался, спать не мог
Утром сначала поправил, потом только за кофе взялся.
... << RSDN@Home 1.2.0 alpha rev. 642>>
Re[4]: Детские ошибки
От: Vi2 Удмуртия http://www.adem.ru
Дата: 02.06.06 04:08
Оценка:
Здравствуйте, fmiracle, Вы писали:

F>Да еще и неправильный коммент?


Коммент-то как раз правильнй, это код не правильный.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[6]: Детские ошибки
От: ekamaloff Великобритания  
Дата: 02.06.06 04:18
Оценка:
Здравствуйте, Xander Zerge, Вы писали:

XZ>Почему неопределённое? Есть чётко прописанный приоритет операторов и порядок их выполнения. Здесь порядок — справа налево: сначала вычисление i, потом уменьшение i на единицу, потом прибавление к новому значению этой переменной её значения старого, перед декрементом. Итого, в результате, получится 3.


Я вообще-то не совсем уверен в своей правоте , но советую посмотреть здесь:

http://rsdn.ru/search/?q=(UB|undefined behaviour|неопределенное поведение) модификация точки следования&amp;mode=rank&amp;group=N&amp;group=9

Если совсем припрет, можно задать этот вопрос в C/C++, там разберутся
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[4]: Детские ошибки
От: Klirik  
Дата: 02.06.06 05:04
Оценка:
F>Причем тут русский?
F>Нахрена коммент к коду, который сам себя документирует?

F>Да еще и неправильный коммент?


В том-то и дело! На русском — значит, индус не поймёт. Как сам коммент, так и (естественно) то, что он — неправильный. Поэтому он не поймёт ничего, кроме этого самодокументированного кода, а в нём ошибки-то как раз нет!
... << RSDN@Home 1.2.0 alpha rev. 651>>
Re[2]: Детские ошибки
От: fmiracle  
Дата: 02.06.06 06:27
Оценка:
поднимаю —

Интересная проверка на null


Да лана там — все время от времени чего-нить подобное ляпнут.
Причем на любом языке...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[14]: Детские ошибки
От: fmiracle  
Дата: 02.06.06 06:39
Оценка:
ZS>На васике нет неоднозначностей, на C++ — есть. Я хотел сказать это. На васике выражение a+++b трактуется всегда однозначно.

Вам уже дважды повторили — что васиков много.
Если рассмотреть, например, VB6

то вот эти конструкции :

w = provider.GetWriter( "test" )
и
SET w = provider.GetWriter( "test" )

довели до безумия немало народу...

Самый обычный пример, случается регулярно.
А вот примеры типа i = --(++i — i++)++ — это все же больше забава, а не реальное использование.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Детские ошибки
От: ansi  
Дата: 02.06.06 06:43
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

Насколькоя я знаю, в изначальном C (или B) именно так эти операторы и записывались. Так что, все правильно Компилятор у тебя просто слишком новый
Re[9]: Детские ошибки
От: ZevS  
Дата: 02.06.06 08:22
Оценка:
Здравствуйте, Sergei, Вы писали:

S>Здравствуйте, ZevS, Вы писали:


S>++ += и т.п. особенно префиксные иногда полезны (например, для оптимизции), если они работают с пользовательскими объектами (например, string);


Пример такой оптимизации в студию!

PS: я бы 10 (десять) раз подумал прежде чем перегружать какие бы то ни было операторы в пользовательском типе...
Re[17]: RE: понимание сути вопроса
От: ZevS  
Дата: 02.06.06 08:35
Оценка:
Здравствуйте, kan_izh, Вы писали:

_>ZevS wrote:


>> Кстати, почитайте статью Вирта в последнем RSDN-е. Интересная статейка.

_>Странная у него там критика. Теоретик он. Не принимает простое правило "если это глупо, но работает, значит это не глупо".

В ходе этой дискуссии почему-то получается так что я говорю об операторах ++ -- , а мне отвечают в том духе что С++ лучше всех. С++ безусловно круче чем VB, Java, весь .NET, Prolog, Lisp и др. вместе взятые. Закрыли тему — глупая она.

По существу, есть у вас что-либо в защиту именно этих операторов?

зыЖ Я уверен более чем на 90% что если вы загляните в свой собственный код, то не увидите эти операторы где-либо, кроме как в заголовке цикла for.
Re[2]: Детские ошибки
От: ekamaloff Великобритания  
Дата: 02.06.06 10:10
Оценка:
Здравствуйте, ansi, Вы писали:

A>Насколькоя я знаю, в изначальном C (или B) именно так эти операторы и записывались. Так что, все правильно Компилятор у тебя просто слишком новый


А как записывалось присвоение отрицательного значения?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[10]: Детские ошибки
От: Sergei  
Дата: 02.06.06 11:13
Оценка:
Здравствуйте, ZevS, Вы писали:

ZS>Здравствуйте, Sergei, Вы писали:


S>>Здравствуйте, ZevS, Вы писали:


S>>++ += и т.п. особенно префиксные иногда полезны (например, для оптимизции), если они работают с пользовательскими объектами (например, string);


ZS>Пример такой оптимизации в студию!


Например, при работе с итераторами

for(<Type>::iterator it=...begin();it!=..end();++it)
...

На самом деле не известно что за объект (какого размера) iterator и делать лишнюю копию незачем(что произошло бы если использовали it=it+1 или it++)...
Re: Детские ошибки
От: Аноним  
Дата: 02.06.06 11:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
А>    x =- 5; // уменьшаем x на 5
А>

А>Кто видит здесь ошибку без отладчика, поднимите руку.

Я, а дальше что ?
Re[11]: Детские ошибки
От: ZevS  
Дата: 02.06.06 12:46
Оценка:
Здравствуйте, Sergei, Вы писали:
...

S>Например, при работе с итераторами


S>
S>for(<Type>::iterator it=...begin();it!=..end();++it)
S>...

S>

S>На самом деле не известно что за объект (какого размера) iterator и делать лишнюю копию незачем(что произошло бы если использовали it=it+1 или it++)...

А чем это лучше чем

  it.Increment();
Re[2]: Детские ошибки
От: asdfghjkl  
Дата: 02.06.06 15:57
Оценка:
А>>
А>>    x =- 5; // уменьшаем x на 5
А>>

А>>Кто видит здесь ошибку без отладчика, поднимите руку.

AW>Ща запинаете, НО... на Паскале такая хрень даже компиляцию не пройдет!!!


Вот за это я и не люблю паскакаль, что приходится писать
yyval[yypv[p3+p4] + yypv[p1+p2]] = yyval[yypv[p3+p4] + yypv[p1+p2]] + 2;
Невозможно чтобы у всех было всё, так как всех много, а всего мало...
Re[6]: Детские ошибки
От: asdfghjkl  
Дата: 02.06.06 16:01
Оценка:
Vi2>>Коммент-то как раз правильнй, это код не правильный.

F>Ну здрасте!

F>В приведенном фрагменте есть две части — присвоение Х значения -5 и комметарий, что это не присвоение, а уменьшение. Соответственно, любой и них может быть неправильным!

Умникус? Ты сам это разобрал или сначала прочитал все ответы?

F>Признаю — в данном тексте код имеет больше шансов оказаться неправильным, но абсолютно точно это ниоткуда не следует


Это следует из названия темы, в которой расположено письмо.
Невозможно чтобы у всех было всё, так как всех много, а всего мало...
Re[18]: понимание сути вопроса
От: asdfghjkl  
Дата: 02.06.06 16:10
Оценка:
ZS>По существу, есть у вас что-либо в защиту именно этих операторов?
yyval[yypv[p3+p4] + yypv[p1+p2]] = yyval[yypv[p3+p4] + yypv[p1+p2]] + 2;


ZS>зыЖ Я уверен более чем на 90% что если вы загляните в свой собственный код, то не увидите эти операторы где-либо, кроме как в заголовке цикла for.


Невозможно чтобы у всех было всё, так как всех много, а всего мало...
Re[18]: понимание сути вопроса
От: kan_izh Великобритания  
Дата: 02.06.06 17:42
Оценка:
ZevS wrote:

>> > Кстати, почитайте статью Вирта в последнем RSDN-е. Интересная статейка.

> _>Странная у него там критика. Теоретик он. Не принимает простое правило
> "если это глупо, но работает, значит это не глупо".

> В ходе этой /дискуссии/ почему-то получается так что я говорю об

> операторах ++ -- , а мне отвечают в том духе что С++ лучше всех. С++
> безусловно круче чем VB, Java, весь .NET, Prolog, Lisp и др. вместе
> взятые. Закрыли тему — глупая она.
Да не круче. Просто когда ко всякой херне прикапываются не по делу — смешно становится.

> *По существу, есть у вас что-либо в защиту именно этих операторов?*

Не нравится — не используй. Напиши:
#define pre_increment(i) (++i)
#define post_increment(i) (i++)
// или даже так
template<T> T& pre_increment(T& i){return ++i;}
template<T> T post_increment(T& i){return i++;}
// и не забудь добавить:
#define BEGIN {
#define END }

и никогда не пиши ++ более.

> зыЖ Я уверен более чем на 90% что если вы загляните в свой собственный

> код, то не увидите эти операторы где-либо, кроме как в заголовке цикла for.
А что плохого в том, что это очень удобно применять в for?
Вот ещё, например:
Iter parts = make_split_iterator(str, first_finder("|", is_iequal()));
const string name(copy_range<string>(*parts++));
const string value(copy_range<string>(*parts++));
const string params(copy_range<string>(*parts++));
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[3]: Детские ошибки
От: Physician Россия  
Дата: 02.06.06 21:14
Оценка:
Здравствуйте, asdfghjkl, Вы писали:

A>Вот за это я и не люблю паскакаль, что приходится писать

A>
A>yyval[yypv[p3+p4] + yypv[p1+p2]] = yyval[yypv[p3+p4] + yypv[p1+p2]] + 2;
A>


Это только любители cиcи++ думают, что на паскакале приходится писать так... они всегда такие путаники...
На самом деле, на паскале это пишется примерно так:

inc(yyval[yypv[p3+p4] + yypv[p1+p2]], 2);
Меняю скатерть-самобранку на аналогичную простынь
Re[4]: Детские ошибки
От: Сергей  
Дата: 02.06.06 21:26
Оценка:
Здравствуйте, Physician, Вы писали:

P>На самом деле, на паскале это пишется примерно так:


P>
P>inc(yyval[yypv[p3+p4] + yypv[p1+p2]], 2);
P>


...но только если тип yyval[] целый. А бывает и float, и ff += 2 в С сработает, а в паскале inc(ff, 2) — нет.
Re[8]: Детские ошибки
От: Physician Россия  
Дата: 02.06.06 22:16
Оценка:
Здравствуйте, ZevS, Вы писали:

ZS>Здравствуйте, CreatorCray, Вы писали:


CC>>Здравствуйте, ZevS, Вы писали:


ZS>>>В точку. Именно поэтому использование операторов -- ++ есть зло. В любом примере. Вообще, ввод их в язык считаю ходом довольно неудачным.

CC>>"Вы не любите кошек? Это потому, что вы не умеете их готовить!" (С) не помню чей

CC>>Может не стоит так категорически объявлять злом то, с чем надо уметь обращаться?

CC>>И перестать обвинять язык в кривости написанного кода.

ZS>1. Результат выполнения программы должен быть предсказуем и не зависить он компилятора. Это мое стойкое убеждение.

ZS>2. Языки программирования создают для людей, а не для компьютеров. Следоватьельно код должен быть легко читаем, и это — прерогатива языка. Очень тяжело разгребать чей то кривой код, особенно если он (кривой писатьель) поощряется синтаксисом языка. А как показывает практика, юные программисты очень любят писать код с использованием максимума языковых фенечек.
ZS>3. С++ — отличный язык отлично себя зарекомендовавший, но не надо его возводить в абсолют.

Совершенно правильно.
Я бы ещё добавил, что

4. От современного компилятора требуется не только сделать машинный код из исходного текста, но и максимально помочь программисту сделать минимум ошибок в этом коде, быстро найти имеющиеся ошибки и помочь их исправить. Данные задачи гораздо легче реализуются при создании компилятора с языка, обладающего такими вещами, как строгий контроль типов данных и легкочитаемый, однозначный синтаксис (ведь если человек легко интерпретирует синтаксис — то это легче и запрограммировать). Как побочный эффект, такой код гораздо быстрее компилируется. вы никогда не задумывались, почему компилятор Delphi работает в разы быстрее компиляторов C/C++ и его сообщения об ошибках гораздо более информативны? А почему в новых языках программирования постоянно усиливается контроль типов (в С его не было, в C++ он появился, в C# он стал таким же, как с самого начала был в Паскале)? А зачем появляются такие термины, как "безопасный код", "управляемый код"? Всё-таки, люди (программисты) хотят, чтобы код действительно был как можно более безопасен и управляем, и чтобы среда разработки помогала им делать это, и Microsoft не забывает использовать это в своём маркетинге! Другое дело, что вокруг синтаксиса С и C++ такую функциональность было довольно сложно навернуть, и пришлось всё же создать новый язык (C#)...

Выходит, Вирт хоть и был "теоретик", но он ещё тогда создал ВЕЩЬ, и он уже тогда знал, что людей со временем не удовлетворит утверждение "работающая глупость — это уже не глупость". Ибо глупость может работать сегодня при одних данных и отказаться работать завтра при других. А нужно — чтобы работало ВСЕГДА. И он предложил действенный способ минимизировать количество детских ошибок.
Меняю скатерть-самобранку на аналогичную простынь
Re[5]: Детские ошибки
От: Physician Россия  
Дата: 02.06.06 22:23
Оценка:
Здравствуйте, Сергей, Вы писали:

С>Здравствуйте, Physician, Вы писали:


P>>На самом деле, на паскале это пишется примерно так:


P>>
P>>inc(yyval[yypv[p3+p4] + yypv[p1+p2]], 2);
P>>


С>...но только если тип yyval[] целый. А бывает и float, и ff += 2 в С сработает, а в паскале inc(ff, 2) — нет.


для более универсального случая вполне можно написать:

ff := yyval[yypv[p3+p4] + yypv[p1+p2]];
ff := ff+2;


imho, выглядит вполне нормально...
Меняю скатерть-самобранку на аналогичную простынь
Re[6]: Детские ошибки
От: kan_izh Великобритания  
Дата: 03.06.06 11:25
Оценка:
Physician wrote:

> для более универсального случая вполне можно написать:

>
> ff := yyval[yypv[p3+p4] + yypv[p1+p2]];
> ff := ff+2;
А ff какого типа? Оно изменит значение в массиве yyval?
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[7]: Детские ошибки
От: Physician Россия  
Дата: 03.06.06 21:55
Оценка:
Здравствуйте, kan_izh, Вы писали:

_>Physician wrote:


>> для более универсального случая вполне можно написать:

>>
>> ff := yyval[yypv[p3+p4] + yypv[p1+p2]];
>> ff := ff+2;
_>А ff какого типа? Оно изменит значение в массиве yyval?

Сорри, опечатался. Имел в виду вот это:


i := yypv[p3+p4] + yypv[p1+p2];
yyval[i] := yyval[i]+1;
Меняю скатерть-самобранку на аналогичную простынь
Re[2]: Детские ошибки
От: Xander Zerge Россия www.zerge.com
Дата: 04.06.06 06:24
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>>Кто видит здесь ошибку без отладчика, поднимите руку.


А>Я, а дальше что ?


Руку.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Серёжа Новиков,
программист
Re[7]: Детские ошибки
От: fmiracle  
Дата: 05.06.06 06:41
Оценка:
A>Умникус? Ты сам это разобрал или сначала прочитал все ответы?

Нихренасе. Такой наезд и безо всякого повода... Или у Вас есть основания поладать, что я не умею читать код?

Не понмаю, почему предположеие, что комментарий тоже может быть неправильным выывает такую реакцию. Это я, конечно, в шутку писал, но блин — это такая шутка, которая _регулярно_ повторяется в жизни.

Или Вы никогда не видели неправильных комментариев в коде? А Вы писали большие проекты? А возвращались к ним через год где-то? А чужой код поддерживали? Если да и не видели неверных комментариев — ну вам очень повезло.

Я встречаю время от времени. Кто-то написал код с комментарием, потом код обновил, а коммент — забыл. Кто-то комментил чужой код и неправильно его понял. Кто-то кометировал свой код _после_ написания и перепутал функции — не туда вставил комментарий. Брр.

Не сама частая ошибка, но зато очень хорошо запоминается своей "приятностью"...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Детские ошибки
От: AYuBurtsev  
Дата: 05.06.06 19:39
Оценка:
Здравствуйте, Xander Zerge, Вы писали:

XZ>А код, да. Не для практики, а из серии задач для олимпиад по информатике.


Да, довольно мило... Вот тоже вариантик:

if( expr == !! true )
i += k+++++m;

А на олимпиаде могут переопределить оператор "+=" и предложить поискать ошибку...
Не все на дебаге в хидер смотрят...

С наилучшими пожеланиями.
Re[7]: Детские ошибки
От: the_void Швейцария  
Дата: 05.06.06 20:22
Оценка:
Здравствуйте, AYuBurtsev, Вы писали:

AYB>if( expr == !! true )

AYB> i += k+++++m;

AYB>А на олимпиаде могут переопределить оператор "+=" и предложить поискать ошибку...


Простите, это на каких олимпиадах такими, кхм, извращениями занимаются?
Кстати, += для встроенного типа переопределить не удасться.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Детские ошибки
От: DioNNis http://i-liger.com
Дата: 06.06.06 09:11
Оценка:
Здравствуйте, ZevS, Вы писали:

ZS>Здравствуйте, ekamaloff, Вы писали:


E>>Здравствуйте, ZevS, Вы писали:


ZS>>>Вам нравятся эти операторы? И же выведет такой код? И почему?

ZS>>>
ZS>>>    int i = 2;
ZS>>>    i += i--;
ZS>>>    printf("%d", i);
ZS>>>


E>>Тут кажись неопределенное поведение — двойная модификация переменной между точками следования. А вообще за такой код руки надо отрывать а не приводить в качестве примера.


ZS>В точку. Именно поэтому использование операторов -- ++ есть зло. В любом примере. Вообще, ввод их в язык считаю ходом довольно неудачным.


Весьма с вами не согласен!!!!!!! Использование модификаций — очень облегчает понимание, а тем более и написание кода!!!(хотя кто как привык...) НО главно просто не переборщить!!!!!!!!
Владея информацией, владеешь миром. Уинстон Черчилль
Re[7]: Детские ошибки
От: DioNNis http://i-liger.com
Дата: 06.06.06 09:44
Оценка:
Здравствуйте, AYuBurtsev, Вы писали:

AYB>Здравствуйте, Xander Zerge, Вы писали:


XZ>>А код, да. Не для практики, а из серии задач для олимпиад по информатике.


AYB>Да, довольно мило... Вот тоже вариантик:


AYB>if( expr == !! true )

AYB> i += k+++++m;

AYB>А на олимпиаде могут переопределить оператор "+=" и предложить поискать ошибку...

AYB>Не все на дебаге в хидер смотрят...

AYB>С наилучшими пожеланиями.


Увлекся вашим интереснейшим примерчиком и решил его немного развить (так сказать для полной красоты... )
вот что получилось:
int i=1;
            int k=5;
            int m = 10;
            i +=++k+++++m++;

Но надо сказать, что данная процедура работает не корректно (хотя никаких ошибоккомпилятор не выводит (только предупреждения)).
Некорректность заключается в том, что даже в отладчики при остановки программы она просто не прекращает свое выполнение и проходит все выставленные точки.
Владея информацией, владеешь миром. Уинстон Черчилль
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.