- 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();
3.14159265 12.03.2012 20:33 # −1
> .Aggregate<Action<Action<bool>>, LinkedAction>(null, NewLinkedAction);
Ну и тупорылый метод NewLinkedAction.
Так?
roman-kashitsyn 13.03.2012 08:59 # −1
Говно, видимо, в том, что вместо того, чтобы написать экшен, принимающий сразу коллекцию экшенов и foreach-ащий их, используются подозрительные подёргивания через reverse и односвязные списки.
3.14159265 13.03.2012 14:47 # 0
А всё потому что технология модная и суют её где попало.
Получается шарперы скоро присоединятся к рнршникам и забудут циклы напрочь.
Steve_Brown 13.03.2012 14:57 # +1
bugmenot 13.03.2012 18:06 # +2
памятуя об одаренности до-диезненьких кодеров, это читается, как уютненький linq
koodeer 13.03.2012 18:08 # +2
> Как мы уже выяснили linq медленее обычного цикла
Если ты про тот недавний замер скорости суммирования массива, здесь на ГК, где обычный for был быстрее linq'а, то там код некорректный: linq и for выполняют разную работу. И выдадут разный результат на других данных.
Просто мне надоело препираться тут со школотой. Пишут некорректные тесты - ну и хрен с ними.
И уже неоднократно писалось: linq сделан не для скорости, он сделан для лаконичности исходного кода.
Там где нужна высокая скорость, следует отказаться от линка и переписать вручную. Всё равно не хватает скорости - переписать на Си. Всё равно не хватает скорости - переписать на асме. Так понятно?
> А всё потому что технология модная и суют её где попало
Пусть так. Тебя это волнует? Хочешь об этом поговорить?
Меня вот почему-то не волнуют школьнеги, пишущие быдлокод. Наоборот, на их фоне я выгодней отличаюсь, и имею с этого профит.
> Получается шарперы скоро присоединятся к рнршникам и забудут циклы напрочь.
Забудут - нет. Почти перестанут использовать - да. Язык развивается в сторону функционального программирования, и при наличии фолдов и аггрегаций циклы становятся не нужны.
abatishchev 13.03.2012 18:12 # −1
ЗЫ. имхо сей "КГ" - афигенен. его написал наш архитектор.
ах как я удачно потролил "шарп знаю плохо но критикую"!
SmackMyBitchUp 13.03.2012 19:20 # 0
Мужик, дрочить не пробовал?
abatishchev 13.03.2012 20:15 # −1
3.14159265 13.03.2012 20:22 # 0
В конце концов оный опущенец был зачморен всеми и уползал со ртом набитым говном.
abatishchev 13.03.2012 20:30 # 0
absolut 13.03.2012 23:02 # +3
SmackMyBitchUp 13.03.2012 20:22 # +1
3.14159265 13.03.2012 20:25 # +3
А теперь они вдвоем меньше тут пишут, чем он когда-то в одиночку.
SmackMyBitchUp 13.03.2012 20:30 # +8
abatishchev 13.03.2012 20:26 # 0
absolut 13.03.2012 23:03 # 0
SmackMyBitchUp 14.03.2012 15:01 # 0
3.14159265 13.03.2012 19:56 # +1
В приведенном ГК оно совсем нелаконично. Циклом и быстрей и меньше кода.
>Меня вот почему-то не волнуют школьнеги, пишущие быдлокод.
Верно ошибся сайтом. Здесь же полно школокода.
>Почти перестанут использовать - да. Язык развивается в сторону функционального программирования, и при наличии фолдов и аггрегаций циклы становятся не нужны.
Правильно. Речь шла именно об этом. И будут использовать linq даже там где написать цикл короче.
koodeer 13.03.2012 22:29 # −6
В приведенном ГК всего одна строка является линком - Aggregate. Всё остальное линком не является.
> И будут использовать linq даже там где написать цикл короче.
Я пай-мальчик, я не люблю ругаться. Но ты вынуждаешь. Ты туп как пробка (ибо троллингом это счесть нельзя).
Если школота напишет неэффективный код на шарпе, значит и на си эта же школота будет писать неэффективно.
bugmenot 14.03.2012 15:19 # +5
koodeer 13.03.2012 18:19 # 0
Недавно тут проскакивала ссылка http://www.joelonsoftware.com/articles/fog0000000319.html
Несложно видеть, что использование стандартных сишных функций работы со строками в ряде случаев ведёт к квадратичному времени. Элементарная конкатенация вызывает пробег по строке каждый раз.
Так стоит-ли из-за этого совсем отказаться от стандартных функций? Конечно же нет! Когда это не критично - можно и нужно использовать их (как и linq), когда время работы критично, пишем свои функции, заточенные под большое количество конкатенаций (используем циклы вместо линка).
Надеюсь, донёс мысль?
3.14159265 13.03.2012 19:59 # +1
Алгоритм польского маляра? Баян.
>Всё равно не хватает скорости - переписать на Си. Всё равно не хватает скорости - переписать на асме.
Иногда код на асме короче кода на Си. Уже были примеры, когда идиот писал 10-20 строк, чтоб установить/проверить нужный бит.
Там где достаточно bt/btr/bts. Оно и быстрее и короче.
Edit: а вот и пруфлинк, бейсик правда.
http://govnokod.ru/3323#comment28311
abatishchev 13.03.2012 20:18 # −3
миллионер, гуру, евангелист, и вообще - знаменитый писатель, блоггер и программист
(факт. не смотря на не особсую мою симпатию к нему)
3.14159265 13.03.2012 20:26 # 0
http://govnokod.ru/9623#comment132291
abatishchev 13.03.2012 20:31 # 0
а вот и пруф: Спольски родился в Альбукерке штата Нью-Мексико и жил там, пока ему не исполнилось 15 лет.[2] Затем с семьёй он переехал в Иерусалим в Израиле, где окончил среднюю школу и служил в десантных войсках.[2] В 1987 он возвращается в США чтобы поступить в колледж.
http://ru.wikipedia.org/wiki/Спольски,_Джоэл
koodeer 13.03.2012 22:34 # 0
Да, баян. Но я вынужден его напоминать.
Объясняю ещё раз: в большинстве языков есть стандартная библиотека/фреймворк, которая позволяет большую часть задачи решать стандартными функциями. Например, те же строковые функции в Си, STL в С++. При этом понятно, что это далеко не всегда будет эффективно. Для конкретных случаев стандартные функции не годятся, и приходится писать код вручную.
Я искренне не понимаю, почему ты и тебе подобные не наезжаете на стандартные библиотеки других языков? А вот почему-то linq на вас действует так.
Резюмирую: ололо! stl отучает приплюснутых думать! они скоро совсем разучатся циклы писать! пыщь-пыщь!
3.14159265 14.03.2012 14:27 # +4
>строковые функции в Си
Как по мне то строки в Си уебищны по дефолту.
>не наезжаете на стандартные библиотеки других языков
Зайди в разделы С/С++, почитай комментарии пользователя TarasB.
3.14159265 14.03.2012 14:37 # +4
Это вообще антиюзабельное говно.
А Багланд и поделия Адоба не пинал только ленивый.
Подозреваю, что просто кому-то трудно выйти за пределы уютненького шарпомирка.
roman-kashitsyn 14.03.2012 15:49 # +1
abatishchev 14.03.2012 22:46 # 0
3.14159265 15.03.2012 13:53 # 0
koodeer 14.03.2012 20:30 # 0
Ты писал, что недостаток шарпа в том, что якобы отучает использовать циклы. Я привёл в пример стандартные возможности Си и С++, которые позволяют тоже писать без циклов. Но это же не отучило сишников и крестовиков от циклов? Я их как использовал, так и использую, когда это надо.
Лично ты наезжал на линк, хотя не знаешь его. Именно поэтому я расписывал (похоже, зря...) достоинства и недостатки линка. Заметь, недостатки тоже.
Я приводил в пример именно си и с++, потому что ты отмечался в темах по этим языкам. Я предположил, что хоть чуть-чуть их знаешь, потому я их и использовал.
Просто я хочу сделать этот мир лучше. :)
abatishchev 14.03.2012 22:48 # −1
1% - реальные профессионалы
(не все реальные профессионалы ругают линк)
bugmenot 14.03.2012 23:02 # +5
пригласите друг друга поужинать
SmackMyBitchUp 15.03.2012 08:26 # 0
abatishchev 15.03.2012 12:05 # 0
abatishchev 15.03.2012 12:05 # 0
а о вас, линк-критиканах. которые линка не знают. вообще
тоже касается и c# в целом. вы его не знаете тоже. вообще.
"vb со скобочками", итп.
нифига не разбираетесь в предмете, которй критикуете
roman-kashitsyn 15.03.2012 13:21 # 0
abatishchev 15.03.2012 14:06 # 0
roman-kashitsyn 15.03.2012 14:22 # +2
В Clojure (который обычно бегает на JVM) весь ваш линк укладывается в операции над sequence.
3.14159265 15.03.2012 15:04 # 0
Угу. И не забывай про шапросахарок, extnesion-методы которым они расширили язык ради того чтоб всё писалось через точечку.
3.14159265 15.03.2012 13:55 # +2
3.14159265 15.03.2012 15:03 # 0
Ничем примечательным я там не отмечался. Ты что-то путаешь.
>Ты писал, что недостаток шарпа в том, что якобы отучает использовать циклы.
Я не писал о "недостатке". Это было больше предсказание эволюции вида до-диезников. Совать LINQ где попало.
Если и сравнивать шарп, то с жабой, потому что они похожи.
Saehrimnir 26.10.2020 15:56 # 0
abatishchev 13.03.2012 20:43 # 0
wvxvw 12.03.2012 23:48 # 0
roman-kashitsyn 13.03.2012 06:33 # +5
евросеть