Сообщение Re[163]: Тормознутость и кривость linq. Compile-time EDSL DB от 09.07.2016 17:49
Изменено 09.07.2016 18:39 Serginio1
Здравствуйте, Evgeny.Panasyuk, Вы писали:
S>> Ну я могу написать кучу кода на С++ и буду по этому буду говорить, что С++ отстойный язык?
S>>И все С++ программисты пишут оптимальный код?
S>> На этом форуме иногда такого насмотришься
EP>Я вот не думаю что авторы того кода неквалифицированны в C#, тем более там не один человек участвует. И исхожу из этого.
EP>Если ты считаешь что они сделали какой-то ужас, то создай тему в соответствующем под-форуме с указанием на недостатки
Это ты считаешь. Мне все равно. Каждый сам решает, что и как. Но это не значит, что с точки зрения выразительности это хорошо.
Но вот делать выводы по этому никогда не стоит. Если, хочешь что то охаять изучи этот предмет.
S>>>>
S>> Если ты про замыкания, то там строится класс компилятором.
EP>Я про синтаксис использования лямбд.
По мне так все сообразно функциональным языкам. Автоматический вывод типа.
https://ru.wikibooks.org/wiki/%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2/%D0%97%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D0%B5
EP>>>Непонятно зачем ты патаешься оправдать раздутую реализацию алгоритма (простейшего!) лямбдами, впрочем мне это уже надоело.
S>> Я тебе показал реализацию которая компактнее реализации на C#. Ты же сам согласился выше.
EP>Какую конкретно реализацию?
Хотошо. Напомню.https://rsdn.ru/forum/philosophy/6489023.1
Или ты её не видел?
Они сделали оператор позволяющий использовать в одну строку как для Nullable так и для value типов.
Но ты так и не привел полный аналог на С++.
EP>Из того что я не говорил "быстрее в 2 раза", не следует ни то что он медленнее, ни то что быстрее.
Ты сам привел для аргумента недостака Сшарпа слова АВК о недостатков компараторов. И говорил на этом основании о недостатках платформы.
EP>1. Этот код работает и без всякого STL, например с обычными массивами.
EP>2. При чём здесь вообще итераторы которые реализованы в STL? Я разве где-то ссылался на код конкретных реализации IEnumerable?
То есть итераторы не внутри СТЛ?
А вот ребята реализовали расширение для IEnumerable.
А я тебе могу скинуть реализации IEnumerable как на yield
https://msdn.microsoft.com/ru-ru/library/9k7k7cf0.aspx
Причем yield очень хороши при эмуляции на циклах, рекурсивных вызовах
и на MoveNext
https://msdn.microsoft.com/ru-ru/library/system.collections.ienumerator.movenext(v=vs.110).aspx
Там все просто.
S>> Ну я могу написать кучу кода на С++ и буду по этому буду говорить, что С++ отстойный язык?
S>>И все С++ программисты пишут оптимальный код?
S>> На этом форуме иногда такого насмотришься
EP>Я вот не думаю что авторы того кода неквалифицированны в C#, тем более там не один человек участвует. И исхожу из этого.
EP>Если ты считаешь что они сделали какой-то ужас, то создай тему в соответствующем под-форуме с указанием на недостатки
Это ты считаешь. Мне все равно. Каждый сам решает, что и как. Но это не значит, что с точки зрения выразительности это хорошо.
Но вот делать выводы по этому никогда не стоит. Если, хочешь что то охаять изучи этот предмет.
S>>>>
EP>>>Лямбды лаконичнее — да, реализация алгоритма — нет.S>>>> Отличия минимальные — auto, return и скобочки.
S>> Если ты про замыкания, то там строится класс компилятором.
EP>Я про синтаксис использования лямбд.
По мне так все сообразно функциональным языкам. Автоматический вывод типа.
https://ru.wikibooks.org/wiki/%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2/%D0%97%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D0%B5
EP>>>Непонятно зачем ты патаешься оправдать раздутую реализацию алгоритма (простейшего!) лямбдами, впрочем мне это уже надоело.
S>> Я тебе показал реализацию которая компактнее реализации на C#. Ты же сам согласился выше.
EP>Какую конкретно реализацию?
Хотошо. Напомню.https://rsdn.ru/forum/philosophy/6489023.1
Автор: Serginio1
Дата: 01.07.16
Дата: 01.07.16
Или ты её не видел?
// если это нуллабле то
var СписокБезНулл=Список.Where(i =>i!=null);
// иначе
СписокБезНулл=Список;
///
//Если список пустой то вернуть default(TSource);то бишь нулл для нуллабле
var МаксимальноеЗначение= СписокБезНулл.Max(i =>i.Value);
var рез=СписокБезНулл.Where(i =>i.Value==МаксимальноеЗначение).FirstOrDefault();
Они сделали оператор позволяющий использовать в одну строку как для Nullable так и для value типов.
Но ты так и не привел полный аналог на С++.
EP>Из того что я не говорил "быстрее в 2 раза", не следует ни то что он медленнее, ни то что быстрее.
Ты сам привел для аргумента недостака Сшарпа слова АВК о недостатков компараторов. И говорил на этом основании о недостатках платформы.
EP>1. Этот код работает и без всякого STL, например с обычными массивами.
EP>2. При чём здесь вообще итераторы которые реализованы в STL? Я разве где-то ссылался на код конкретных реализации IEnumerable?
То есть итераторы не внутри СТЛ?
А вот ребята реализовали расширение для IEnumerable.
А я тебе могу скинуть реализации IEnumerable как на yield
https://msdn.microsoft.com/ru-ru/library/9k7k7cf0.aspx
Причем yield очень хороши при эмуляции на циклах, рекурсивных вызовах
и на MoveNext
https://msdn.microsoft.com/ru-ru/library/system.collections.ienumerator.movenext(v=vs.110).aspx
Там все просто.
Re[163]: Тормознутость и кривость linq. Compile-time EDSL DB
Здравствуйте, Evgeny.Panasyuk, Вы писали:
S>> Ну я могу написать кучу кода на С++ и буду по этому буду говорить, что С++ отстойный язык?
S>>И все С++ программисты пишут оптимальный код?
S>> На этом форуме иногда такого насмотришься
EP>Я вот не думаю что авторы того кода неквалифицированны в C#, тем более там не один человек участвует. И исхожу из этого.
EP>Если ты считаешь что они сделали какой-то ужас, то создай тему в соответствующем под-форуме с указанием на недостатки
Это ты считаешь. Мне все равно. Каждый сам решает, что и как. Но это не значит, что с точки зрения выразительности это хорошо.
И выоды надо делать на своих знаниях, а не о том, что кто то напел Паворотти.
Но вот делать выводы по этому никогда не стоит. Если, хочешь что то охаять изучи этот предмет.
S>>>>
S>> Если ты про замыкания, то там строится класс компилятором.
EP>Я про синтаксис использования лямбд.
По мне так все сообразно функциональным языкам. Автоматический вывод типа.
https://ru.wikibooks.org/wiki/%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2/%D0%97%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D0%B5
EP>>>Непонятно зачем ты патаешься оправдать раздутую реализацию алгоритма (простейшего!) лямбдами, впрочем мне это уже надоело.
S>> Я тебе показал реализацию которая компактнее реализации на C#. Ты же сам согласился выше.
EP>Какую конкретно реализацию?
Хотошо. Напомню.https://rsdn.ru/forum/philosophy/6489023.1
Или ты её не видел?
Они сделали оператор позволяющий использовать в одну строку как для Nullable так и для value типов.
Но ты так и не привел полный аналог на С++.
EP>Из того что я не говорил "быстрее в 2 раза", не следует ни то что он медленнее, ни то что быстрее.
Ты сам привел для аргумента недостака Сшарпа слова АВК о недостатков компараторов. И говорил на этом основании о недостатках платформы.
EP>1. Этот код работает и без всякого STL, например с обычными массивами.
EP>2. При чём здесь вообще итераторы которые реализованы в STL? Я разве где-то ссылался на код конкретных реализации IEnumerable?
То есть итераторы не внутри СТЛ?
А вот ребята реализовали расширение для IEnumerable.
А я тебе могу скинуть реализации IEnumerable как на yield
https://msdn.microsoft.com/ru-ru/library/9k7k7cf0.aspx
Причем yield очень хороши при эмуляции на циклах, рекурсивных вызовах
и на MoveNext
https://msdn.microsoft.com/ru-ru/library/system.collections.ienumerator.movenext(v=vs.110).aspx
Там все просто.
S>> Ну я могу написать кучу кода на С++ и буду по этому буду говорить, что С++ отстойный язык?
S>>И все С++ программисты пишут оптимальный код?
S>> На этом форуме иногда такого насмотришься
EP>Я вот не думаю что авторы того кода неквалифицированны в C#, тем более там не один человек участвует. И исхожу из этого.
EP>Если ты считаешь что они сделали какой-то ужас, то создай тему в соответствующем под-форуме с указанием на недостатки
Это ты считаешь. Мне все равно. Каждый сам решает, что и как. Но это не значит, что с точки зрения выразительности это хорошо.
И выоды надо делать на своих знаниях, а не о том, что кто то напел Паворотти.
Но вот делать выводы по этому никогда не стоит. Если, хочешь что то охаять изучи этот предмет.
S>>>>
EP>>>Лямбды лаконичнее — да, реализация алгоритма — нет.S>>>> Отличия минимальные — auto, return и скобочки.
S>> Если ты про замыкания, то там строится класс компилятором.
EP>Я про синтаксис использования лямбд.
По мне так все сообразно функциональным языкам. Автоматический вывод типа.
https://ru.wikibooks.org/wiki/%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2/%D0%97%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D0%B5
EP>>>Непонятно зачем ты патаешься оправдать раздутую реализацию алгоритма (простейшего!) лямбдами, впрочем мне это уже надоело.
S>> Я тебе показал реализацию которая компактнее реализации на C#. Ты же сам согласился выше.
EP>Какую конкретно реализацию?
Хотошо. Напомню.https://rsdn.ru/forum/philosophy/6489023.1
Автор: Serginio1
Дата: 01.07.16
Дата: 01.07.16
Или ты её не видел?
// если это нуллабле то
var СписокБезНулл=Список.Where(i =>i!=null);
// иначе
СписокБезНулл=Список;
///
//Если список пустой то вернуть default(TSource);то бишь нулл для нуллабле
var МаксимальноеЗначение= СписокБезНулл.Max(i =>i.Value);
var рез=СписокБезНулл.Where(i =>i.Value==МаксимальноеЗначение).FirstOrDefault();
Они сделали оператор позволяющий использовать в одну строку как для Nullable так и для value типов.
Но ты так и не привел полный аналог на С++.
EP>Из того что я не говорил "быстрее в 2 раза", не следует ни то что он медленнее, ни то что быстрее.
Ты сам привел для аргумента недостака Сшарпа слова АВК о недостатков компараторов. И говорил на этом основании о недостатках платформы.
EP>1. Этот код работает и без всякого STL, например с обычными массивами.
EP>2. При чём здесь вообще итераторы которые реализованы в STL? Я разве где-то ссылался на код конкретных реализации IEnumerable?
То есть итераторы не внутри СТЛ?
А вот ребята реализовали расширение для IEnumerable.
А я тебе могу скинуть реализации IEnumerable как на yield
https://msdn.microsoft.com/ru-ru/library/9k7k7cf0.aspx
Причем yield очень хороши при эмуляции на циклах, рекурсивных вызовах
и на MoveNext
https://msdn.microsoft.com/ru-ru/library/system.collections.ienumerator.movenext(v=vs.110).aspx
Там все просто.