- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
private class LinkedAction
{
public Action<Action<bool>> Action { get; set; }
public LinkedAction Next { get; set; }
public void Execute()
{
Action(s =>
{
if (s && Next != null) Next.Execute();
});
}
}
private static LinkedAction NewLinkedAction(LinkedAction link, Action<Action<bool>> action)
{
return new LinkedAction
{
Action = action,
Next = link
};
}
var action = GetCopytoTestActions(parameter)
.Reverse()
.Aggregate<Action<Action<bool>>, LinkedAction>(null, NewLinkedAction);
action.Execute();
> .Aggregate<Action<Action<bool>>, LinkedAction>(null, NewLinkedAction);
Ну и тупорылый метод NewLinkedAction.
Так?
Говно, видимо, в том, что вместо того, чтобы написать экшен, принимающий сразу коллекцию экшенов и foreach-ащий их, используются подозрительные подёргивания через reverse и односвязные списки.
А всё потому что технология модная и суют её где попало.
Получается шарперы скоро присоединятся к рнршникам и забудут циклы напрочь.
памятуя об одаренности до-диезненьких кодеров, это читается, как уютненький linq
> Как мы уже выяснили linq медленее обычного цикла
Если ты про тот недавний замер скорости суммирования массива, здесь на ГК, где обычный for был быстрее linq'а, то там код некорректный: linq и for выполняют разную работу. И выдадут разный результат на других данных.
Просто мне надоело препираться тут со школотой. Пишут некорректные тесты - ну и хрен с ними.
И уже неоднократно писалось: linq сделан не для скорости, он сделан для лаконичности исходного кода.
Там где нужна высокая скорость, следует отказаться от линка и переписать вручную. Всё равно не хватает скорости - переписать на Си. Всё равно не хватает скорости - переписать на асме. Так понятно?
> А всё потому что технология модная и суют её где попало
Пусть так. Тебя это волнует? Хочешь об этом поговорить?
Меня вот почему-то не волнуют школьнеги, пишущие быдлокод. Наоборот, на их фоне я выгодней отличаюсь, и имею с этого профит.
> Получается шарперы скоро присоединятся к рнршникам и забудут циклы напрочь.
Забудут - нет. Почти перестанут использовать - да. Язык развивается в сторону функционального программирования, и при наличии фолдов и аггрегаций циклы становятся не нужны.
ЗЫ. имхо сей "КГ" - афигенен. его написал наш архитектор.
ах как я удачно потролил "шарп знаю плохо но критикую"!
Мужик, дрочить не пробовал?
В конце концов оный опущенец был зачморен всеми и уползал со ртом набитым говном.
А теперь они вдвоем меньше тут пишут, чем он когда-то в одиночку.
В приведенном ГК оно совсем нелаконично. Циклом и быстрей и меньше кода.
>Меня вот почему-то не волнуют школьнеги, пишущие быдлокод.
Верно ошибся сайтом. Здесь же полно школокода.
>Почти перестанут использовать - да. Язык развивается в сторону функционального программирования, и при наличии фолдов и аггрегаций циклы становятся не нужны.
Правильно. Речь шла именно об этом. И будут использовать linq даже там где написать цикл короче.
В приведенном ГК всего одна строка является линком - Aggregate. Всё остальное линком не является.
> И будут использовать linq даже там где написать цикл короче.
Я пай-мальчик, я не люблю ругаться. Но ты вынуждаешь. Ты туп как пробка (ибо троллингом это счесть нельзя).
Если школота напишет неэффективный код на шарпе, значит и на си эта же школота будет писать неэффективно.
Недавно тут проскакивала ссылка http://www.joelonsoftware.com/articles/fog0000000319.html
Несложно видеть, что использование стандартных сишных функций работы со строками в ряде случаев ведёт к квадратичному времени. Элементарная конкатенация вызывает пробег по строке каждый раз.
Так стоит-ли из-за этого совсем отказаться от стандартных функций? Конечно же нет! Когда это не критично - можно и нужно использовать их (как и linq), когда время работы критично, пишем свои функции, заточенные под большое количество конкатенаций (используем циклы вместо линка).
Надеюсь, донёс мысль?
Алгоритм польского маляра? Баян.
>Всё равно не хватает скорости - переписать на Си. Всё равно не хватает скорости - переписать на асме.
Иногда код на асме короче кода на Си. Уже были примеры, когда идиот писал 10-20 строк, чтоб установить/проверить нужный бит.
Там где достаточно bt/btr/bts. Оно и быстрее и короче.
Edit: а вот и пруфлинк, бейсик правда.
http://govnokod.ru/3323#comment28311
миллионер, гуру, евангелист, и вообще - знаменитый писатель, блоггер и программист
(факт. не смотря на не особсую мою симпатию к нему)
http://govnokod.ru/9623#comment132291
а вот и пруф: Спольски родился в Альбукерке штата Нью-Мексико и жил там, пока ему не исполнилось 15 лет.[2] Затем с семьёй он переехал в Иерусалим в Израиле, где окончил среднюю школу и служил в десантных войсках.[2] В 1987 он возвращается в США чтобы поступить в колледж.
http://ru.wikipedia.org/wiki/Спольски,_Джоэл
Да, баян. Но я вынужден его напоминать.
Объясняю ещё раз: в большинстве языков есть стандартная библиотека/фреймворк, которая позволяет большую часть задачи решать стандартными функциями. Например, те же строковые функции в Си, STL в С++. При этом понятно, что это далеко не всегда будет эффективно. Для конкретных случаев стандартные функции не годятся, и приходится писать код вручную.
Я искренне не понимаю, почему ты и тебе подобные не наезжаете на стандартные библиотеки других языков? А вот почему-то linq на вас действует так.
Резюмирую: ололо! stl отучает приплюснутых думать! они скоро совсем разучатся циклы писать! пыщь-пыщь!
>строковые функции в Си
Как по мне то строки в Си уебищны по дефолту.
>не наезжаете на стандартные библиотеки других языков
Зайди в разделы С/С++, почитай комментарии пользователя TarasB.
Это вообще антиюзабельное говно.
А Багланд и поделия Адоба не пинал только ленивый.
Подозреваю, что просто кому-то трудно выйти за пределы уютненького шарпомирка.
Ты писал, что недостаток шарпа в том, что якобы отучает использовать циклы. Я привёл в пример стандартные возможности Си и С++, которые позволяют тоже писать без циклов. Но это же не отучило сишников и крестовиков от циклов? Я их как использовал, так и использую, когда это надо.
Лично ты наезжал на линк, хотя не знаешь его. Именно поэтому я расписывал (похоже, зря...) достоинства и недостатки линка. Заметь, недостатки тоже.
Я приводил в пример именно си и с++, потому что ты отмечался в темах по этим языкам. Я предположил, что хоть чуть-чуть их знаешь, потому я их и использовал.
Просто я хочу сделать этот мир лучше. :)
1% - реальные профессионалы
(не все реальные профессионалы ругают линк)
пригласите друг друга поужинать
а о вас, линк-критиканах. которые линка не знают. вообще
тоже касается и c# в целом. вы его не знаете тоже. вообще.
"vb со скобочками", итп.
нифига не разбираетесь в предмете, которй критикуете
В Clojure (который обычно бегает на JVM) весь ваш линк укладывается в операции над sequence.
Угу. И не забывай про шапросахарок, extnesion-методы которым они расширили язык ради того чтоб всё писалось через точечку.
Ничем примечательным я там не отмечался. Ты что-то путаешь.
>Ты писал, что недостаток шарпа в том, что якобы отучает использовать циклы.
Я не писал о "недостатке". Это было больше предсказание эволюции вида до-диезников. Совать LINQ где попало.
Если и сравнивать шарп, то с жабой, потому что они похожи.
евросеть