Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Покончим с произволом компиляторов C! Пусть брякаются циклы, пусть брякаются свитчи, ифы, процедуры, траи и катчи, пусть брякаются просто вложенные блоки из скобочек, пусть брякаются сами бряки:
break {
break;
};
и наконец пусть брякается вся программа, одним большим глобальным бряком!
You see, young break. Those breaks don't care about break break. They just want to take your break and break their own break. The only break for this is to break.
function f of x, y returning int
where
x is int,
y is int
begin function f of x, y returning int
loop for int i from 0 to N do
begin loop for int i from 0 to N
loop for int j from 0 to M do
begin loop for int j from 0 to M
....
break loop for int j from 0 to M, loop for int i from 0 to N; { выход из двух циклов!!! }
....
end loop for int j from 0 to M;
end loop for int i from 0 to N;
f returning 100;
end function f of x, y returning int
where x is int, y is int;
Есть вот в некоторых функциональных языках плейсхолдер _, обозначающий "не важно". O(_)
К сожалению, кодеры пишущие с такой сложностью алгоритма, ещё не перевелись....
В Scheme можно прочувствовать в основном базовые идеи. Минимум сахара и возможностей, всё прозрачно. В Haskell всё по хардкору: ленивые вычисления, алгебра типов, монады, сопоставление с образцом. В Scala многое из этого есть, но в ней куча фич и возможностей, которые к ФП имеют весьма посредственное отношение.
С Nemerle не работал, но подозреваю, что это аналог Scala под .NET с мощной системой метапрограммирвания, что, опять же, отвлекает нас от ФП.
В любом случае, начать со Scheme будет весьма полезно.
"Быстрый" алгоритм поиска?
UPD: обидно, что не скомпилится из-за бряков вне цикла.
break {
break;
};
и наконец пусть брякается вся программа, одним большим глобальным бряком!
Или метки делать.
Вообще поставит в ступор %)
Вот поэтому лучше или метка или бряк только на один уровень...
зы исправил на отступы в 2 пробела
move eax as integer to edx as integer at central processing unit
O(_)
К сожалению, кодеры пишущие с такой сложностью алгоритма, ещё не перевелись....
fxd
И кстати, пока есть возможность, хотел тут с функциональщиной познакомиться, какой для этого язык подойдёт?
Плюс JavaScript вроде не мешает в императивном стиле писать.
UPD: Или это ответ на первый вопрос?
Но дает писать и в функциональном 😉 И даже тот же хаскель дает писать императивно...
- Scheme
- Scala
- Nemerle
- Haskell
С Nemerle не работал, но подозреваю, что это аналог Scala под .NET с мощной системой метапрограммирвания, что, опять же, отвлекает нас от ФП.
В любом случае, начать со Scheme будет весьма полезно.
http://www.youtube.com/watch?v=8BmBSQUdLYA