Информация об изменениях

Сообщение 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>>>> Отличия минимальные — auto, return и скобочки.

EP>>>Лямбды лаконичнее — да, реализация алгоритма — нет.
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

Или ты её не видел?
// если это нуллабле то
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>>>> Отличия минимальные — auto, return и скобочки.

EP>>>Лямбды лаконичнее — да, реализация алгоритма — нет.
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

Или ты её не видел?
// если это нуллабле то
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

Там все просто.