Чтобы добавлять сообщения и комментарии, .

@qnikst:
qnikst

Задачка на 5-тый класс, сколько goto нужно нарисовать, чтобы реализовать этот кусок кода

    join $ fix $ \loop -> atomicModifyIORef' isInitialized $ \x ->
      case x of
        _ | x > 0 && even x -> (x, return ())          -- initialized   - skipping
        _ | x > 0           -> (x, yield >> join loop)   -- initializing in other thread - wait
        _ | even x          -> ( (-x) + 1, init2)           -- deinitialized - initializing
        _                   -> (x, yield >> join loop))     -- deinitializing - wait

@zxc-by:
zxc-by

гото — признак хорошего дизайна, сразу видно что автор языка предусмотрел все неожиданности

@Strephil:
Strephil

Приходится писать на жабке, а там даже goto нет.
Быдлокодерострадания.

@NokitaKaze:
NokitaKaze

Помню, когда я 5-6 лет назад только начал учить PHP, я всё никак не мог понять "как же так, как они назвали здесь goto, почему я его не могу найти. Я никогда не поверю, что есть язык программирования без goto"

@folex:
folex

Жуйк.

int __init my_init_function(void)
{
int err;
/ registration takes a pointer and a name /
err = register_this(ptr1, "skull");
if (err) goto fail_this;
err = register_that(ptr2, "skull");
if (err) goto fail_that;
err = register_those(ptr3, "skull");
if (err) goto fail_those;
return 0; / success /
fail_those: unregister_that(ptr2, "skull");
fail_that: unregister_this(ptr1, "skull");
fail_this: return err; / propagate the error /
}

Почему нельзя было написать это без goto? Через if-else это отлично хендлится. Я не понимат.
З.Ы. Это код из книжки
«Linux Device Drivers, Third Edition By Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
February 2005»

@zeks:
zeks

xkcd.com

@NokitaKaze:
NokitaKaze

while (true){
if (f1()){break;}
...
if (f2()){break;}
...
break;
}
Нету goto? Будет goto.

Так мы, русские программисты, отвечаем недореализациям широкоиспользуемых языков

@NokitaKaze:
NokitaKaze

Я обожаю goto. Нет, не так. Я ОБОЖАЮ GOTO!!!
Я хочу засунуть все ненавистников goto в пещеру и сказать им: «Здравствуйте, я хочу сыграть с вами в игру, во время которой вам надо доказать САМИМ СЕБЕ, что вы не говно. Суть такова. Из пещеры три выхода. В первый выход, который прямо позади вас, через две минуты зайдут злые роботы-убийцы со ржавыми пилами и баллонами с мочой со СПИДом. Второй выход слева от вас. Это дверь. Третий выход где-то перед вами, в далёёёёкой темноте, а пещера запутанная и в ней очень неудобно и плохо. Вам надо отсюда выбраться, либо сдохнуть от роботов либо потеряться в лабиринте и сдохнуть там. И, нет, вы не можете воспользоваться дверью. Эта дверь это символическое представление оператора GOTO в нашем мире. Вы, дебилы-полудурки, ненавидите goto. Вы не можете пройти через эту дверь. А я люблю goto.» И с этими словами я выхожу через дверь, которую закрываю на ключ. И СЛЫШУ ВОЙ И СТОНЫ И КРИКИ БОЛИ ПО ТУ СТОРОНУ!

Я влосемь лет мечтаю о таком фильме!

А в конце, после титров, когда один из уродов ползком выберется из пещеры, я подойду к нему, сяду перед ним и состоится такой диалог:
— Почему вы ненавидите goto?
— Goto это плохой стиль!
— Но ведь я спокойно вышел через дверь, а вам пришлось искать пути, пробираться через ямы со змеями, отрезать себе пальцы, что бы пройти в некоторых местах.
— Но Goto это плохой стиль!
— А вы знаете, я считаю, что латинские буквы в именах переменных это плохой стиль
— Но тогда в исходных кодах имена переменных и числа будут сливаться в одну кашу
— Но это ведь плохой стиль, нет?!
— Вы псих!
— Вооот. Вы, кажется, начали понимать, почему я всех вас считаю сумасшедшими.

Я кончил

@DancingWolf:
DancingWolf

mgreen-jazz.ru

@Strephil:
Strephil

Отступы — важная составляющая программы. Знаменитый код Л. Кэррола ‘long & sad tale’ состоит из отступов чуть менее, чем полностью. Отступы — вот отличие if/else/while/for от goto. Если выход из хвоста не является частью алгоритма, то использование if/else вместо goto разрушит структуру отступов; отступы перестанут быть выражением алгоритма.

@Mazdaywik:
Mazdaywik

Кусочек кода компилятора Рефала 2 на Си (в своё время переписан с PL/I). В файле порядка 800 строк в этом духе.
pastebin.org
Для тех, кому лень смотреть по ссылке --- там метки и goto.
FFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!111111