Сообщение Re[19]: Rust в Dropbox от 01.07.2016 14:00
Изменено 01.07.2016 14:02 Serginio1
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Здравствуйте, Serginio1, Вы писали:
SS>>>>>>>> Это расширение для Linq. И называется кстати EnumerableExtensions. Во втором случае генерятся по подобию два
S>>>>>>>>расширения на Макс и Мин. Только и всего. При этом две ветки для валуе типов и для классов. Для классов идет еще проверка на null всех элементов, сравнение для них не проводится. По аналогии с DB Null
EP>>>>>>>К чему ты ведёшь? Как это относится к обсуждаемому вопросу?
S>>>> Да.
EP>>>Что "да"?
S>> Это относится к тому, что ты охаял.
EP>Где охаял? Можешь целиком сформулировать мысль?
https://github.com/rsdn/CodeJam/blob/e86dc27fadd28f7932a0c840f5356e98cfa7a40c/Main/src/Collections/EnumerableExtensions.AggregateFuncs.cs
EP>>>Например:
EP>>>
S>> А теперь код element. И что бы было различие между ссылочными и валуе типами.
EP>Я приводил код, нужен только wrapper в пару строк для Range интерфейса, о котором я сразу и сказал
Ну вот нужно добавить. По сути и получится тоже самое. Да и на самом деле мне как пользователю наплевать как внутри реализовано. Главное быстро и удобно. Смотри на конечный результат.
S>>>> По алгоритму указанному в MinItem. А именно null не сравниваются для указателей.
EP>>>Добавь filtered во внутрь обёртки, при этом алгоритм фильтрации не нужно расписывать вручную — его заинлайнит компилятор.
EP>>>
S>> То есть мы должны сначала отфильтровать по null а затем применять искать минимум?
EP>Нет, не "сначала" отфильтровать, а применить ленивый фильтр, который даст вид range без nullptr.
То есть делать то же самое, что тебе не понравилось. У ребят сделано тоже самое. Только две ветки для валуе типов и Nullable
S>>Пока это никак не тянет на
S>>var МаксЗнач=source.MinItem(i => i.Value)?.Value
EP>Спрячь применение фильтра во внутрь обёртки, если тебе нужен именно этот вариант
И будет в итоге тоже самое.
S>>Я так понимаю async([i]{ return reschedule(), i*100; }); возвращает аналог Task?
EP>Да.
S>>А кто готовит автомат? В .Net этим занимается компилятор.
EP>Никто специальный автомат не готовит, я же говорю что это на основе stackful coroutines. Автомат нужен для stackless.
Я с вас хренею любите вы словами бросаться. По поводу await async куча статей с разбором как все работает. По С++ все туго.
Хоть бы ссылку на толковую статью.
S>>Кстати по поводу
S>> // await is not limited by "one level" as in C
S>>Есть мнтоды Task WhenAll , WhenAny
EP>Это не в тему. Смотри пример по ссылке — await из bar'а возвращает управление на самый вверх, в C# пришлось бы ставить await bar внутри foo, добавлять async, и так на всех уровнях. Тут же можно вызывать await на самом глубоком уровне, не меняя код на промежуточных.
Так await и показывает, что функция асинхронная. А вот вызов просто bar воспринимается как синхронная. Где логика?
S>> Ты всю эту библиотеку изучил? Лучше бы Linq изучил. Тогда вопросов бы таких не было.
EP>Лучше бы ты изучил STL, тогда хотя бы понял о чём речь
Я то как раз изучаю и понимаю о чем ты говоришь. Советую и тебе C# подтянуть.
S>>Вот когда покажешь такой же ваприант тогда поверю. Пока все мимо.
S>> То есть твой вариант не универсален.
EP>Почему он не универсален?
Я не могу его применить одинаково для валуе и ссылочных типов с учетом null.
EP>Здравствуйте, Serginio1, Вы писали:
SS>>>>>>>> Это расширение для Linq. И называется кстати EnumerableExtensions. Во втором случае генерятся по подобию два
S>>>>>>>>расширения на Макс и Мин. Только и всего. При этом две ветки для валуе типов и для классов. Для классов идет еще проверка на null всех элементов, сравнение для них не проводится. По аналогии с DB Null
EP>>>>>>>К чему ты ведёшь? Как это относится к обсуждаемому вопросу?
S>>>> Да.
EP>>>Что "да"?
S>> Это относится к тому, что ты охаял.
EP>Где охаял? Можешь целиком сформулировать мысль?
https://github.com/rsdn/CodeJam/blob/e86dc27fadd28f7932a0c840f5356e98cfa7a40c/Main/src/Collections/EnumerableExtensions.AggregateFuncs.cs
EP>>>Например:
EP>>>
EP>>>auto it = min_element(source, [](auto &i){ return i->value; });
EP>>>
S>> А теперь код element. И что бы было различие между ссылочными и валуе типами.
EP>Я приводил код, нужен только wrapper в пару строк для Range интерфейса, о котором я сразу и сказал
Автор: Evgeny.Panasyuk
Дата: 23.03.16
.Дата: 23.03.16
Ну вот нужно добавить. По сути и получится тоже самое. Да и на самом деле мне как пользователю наплевать как внутри реализовано. Главное быстро и удобно. Смотри на конечный результат.
S>>>> По алгоритму указанному в MinItem. А именно null не сравниваются для указателей.
EP>>>Добавь filtered во внутрь обёртки, при этом алгоритм фильтрации не нужно расписывать вручную — его заинлайнит компилятор.
EP>>>
EP>>>source | filtered([](auto &x){ return x != nullptr; })
EP>>>
S>> То есть мы должны сначала отфильтровать по null а затем применять искать минимум?
EP>Нет, не "сначала" отфильтровать, а применить ленивый фильтр, который даст вид range без nullptr.
То есть делать то же самое, что тебе не понравилось. У ребят сделано тоже самое. Только две ветки для валуе типов и Nullable
S>>Пока это никак не тянет на
S>>var МаксЗнач=source.MinItem(i => i.Value)?.Value
EP>Спрячь применение фильтра во внутрь обёртки, если тебе нужен именно этот вариант
И будет в итоге тоже самое.
S>>Я так понимаю async([i]{ return reschedule(), i*100; }); возвращает аналог Task?
EP>Да.
S>>А кто готовит автомат? В .Net этим занимается компилятор.
EP>Никто специальный автомат не готовит, я же говорю что это на основе stackful coroutines. Автомат нужен для stackless.
Я с вас хренею любите вы словами бросаться. По поводу await async куча статей с разбором как все работает. По С++ все туго.
Хоть бы ссылку на толковую статью.
S>>Кстати по поводу
S>> // await is not limited by "one level" as in C
S>>Есть мнтоды Task WhenAll , WhenAny
EP>Это не в тему. Смотри пример по ссылке — await из bar'а возвращает управление на самый вверх, в C# пришлось бы ставить await bar внутри foo, добавлять async, и так на всех уровнях. Тут же можно вызывать await на самом глубоком уровне, не меняя код на промежуточных.
Так await и показывает, что функция асинхронная. А вот вызов просто bar воспринимается как синхронная. Где логика?
S>> Ты всю эту библиотеку изучил? Лучше бы Linq изучил. Тогда вопросов бы таких не было.
EP>Лучше бы ты изучил STL, тогда хотя бы понял о чём речь
Я то как раз изучаю и понимаю о чем ты говоришь. Советую и тебе C# подтянуть.
S>>Вот когда покажешь такой же ваприант тогда поверю. Пока все мимо.
S>> То есть твой вариант не универсален.
EP>Почему он не универсален?
Я не могу его применить одинаково для валуе и ссылочных типов с учетом null.
Re[19]: Rust в Dropbox
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Здравствуйте, Serginio1, Вы писали:
SS>>>>>>>> Это расширение для Linq. И называется кстати EnumerableExtensions. Во втором случае генерятся по подобию два
S>>>>>>>>расширения на Макс и Мин. Только и всего. При этом две ветки для валуе типов и для классов. Для классов идет еще проверка на null всех элементов, сравнение для них не проводится. По аналогии с DB Null
EP>>>>>>>К чему ты ведёшь? Как это относится к обсуждаемому вопросу?
S>>>> Да.
EP>>>Что "да"?
S>> Это относится к тому, что ты охаял.
EP>Где охаял? Можешь целиком сформулировать мысль?
https://github.com/rsdn/CodeJam/blob/e86dc27fadd28f7932a0c840f5356e98cfa7a40c/Main/src/Collections/EnumerableExtensions.AggregateFuncs.cs
EP>>>Например:
EP>>>
S>> А теперь код element. И что бы было различие между ссылочными и валуе типами.
EP>Я приводил код, нужен только wrapper в пару строк для Range интерфейса, о котором я сразу и сказал
Ну вот нужно добавить. По сути и получится тоже самое. Да и на самом деле мне как пользователю наплевать как внутри реализовано. Главное быстро и удобно. Смотри на конечный результат.
S>>>> По алгоритму указанному в MinItem. А именно null не сравниваются для указателей.
EP>>>Добавь filtered во внутрь обёртки, при этом алгоритм фильтрации не нужно расписывать вручную — его заинлайнит компилятор.
EP>>>
S>> То есть мы должны сначала отфильтровать по null а затем применять искать минимум?
EP>Нет, не "сначала" отфильтровать, а применить ленивый фильтр, который даст вид range без nullptr.
То есть делать то же самое, что тебе не понравилось. У ребят сделано тоже самое. Только две ветки для валуе типов и Nullable
S>>Пока это никак не тянет на
S>>var МаксЗнач=source.MinItem(i => i.Value)?.Value
EP>Спрячь применение фильтра во внутрь обёртки, если тебе нужен именно этот вариант
И будет в итоге тоже самое.
S>>Я так понимаю async([i]{ return reschedule(), i*100; }); возвращает аналог Task?
EP>Да.
S>>А кто готовит автомат? В .Net этим занимается компилятор.
EP>Никто специальный автомат не готовит, я же говорю что это на основе stackful coroutines. Автомат нужен для stackless.
Я с вас хренею любите вы словами бросаться. По поводу await async куча статей с разбором как все работает. По С++ все туго.
Хоть бы ссылку на толковую статью.
S>>Кстати по поводу
S>> // await is not limited by "one level" as in C
S>>Есть мнтоды Task WhenAll , WhenAny
EP>Это не в тему. Смотри пример по ссылке — await из bar'а возвращает управление на самый вверх, в C# пришлось бы ставить await bar внутри foo, добавлять async, и так на всех уровнях. Тут же можно вызывать await на самом глубоком уровне, не меняя код на промежуточных.
Так await и показывает, что функция асинхронная. А вот вызов просто bar воспринимается как синхронная. Где логика?
S>> Ты всю эту библиотеку изучил? Лучше бы Linq изучил. Тогда вопросов бы таких не было.
EP>Лучше бы ты изучил STL, тогда хотя бы понял о чём речь
Я то как раз изучаю и понимаю о чем ты говоришь.
Выложил статью Кроссплатформенное использование классов .Net из неуправляемого кода. Или аналог IDispatch на Linux
Исходники лежат Здесь
Выложил статью
Разработка → Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux
Исходники здесь
Советую и тебе C# подтянуть.
S>>Вот когда покажешь такой же ваприант тогда поверю. Пока все мимо.
S>> То есть твой вариант не универсален.
EP>Почему он не универсален?
Я не могу его применить одинаково для валуе и ссылочных типов с учетом null.
EP>Здравствуйте, Serginio1, Вы писали:
SS>>>>>>>> Это расширение для Linq. И называется кстати EnumerableExtensions. Во втором случае генерятся по подобию два
S>>>>>>>>расширения на Макс и Мин. Только и всего. При этом две ветки для валуе типов и для классов. Для классов идет еще проверка на null всех элементов, сравнение для них не проводится. По аналогии с DB Null
EP>>>>>>>К чему ты ведёшь? Как это относится к обсуждаемому вопросу?
S>>>> Да.
EP>>>Что "да"?
S>> Это относится к тому, что ты охаял.
EP>Где охаял? Можешь целиком сформулировать мысль?
https://github.com/rsdn/CodeJam/blob/e86dc27fadd28f7932a0c840f5356e98cfa7a40c/Main/src/Collections/EnumerableExtensions.AggregateFuncs.cs
EP>>>Например:
EP>>>
EP>>>auto it = min_element(source, [](auto &i){ return i->value; });
EP>>>
S>> А теперь код element. И что бы было различие между ссылочными и валуе типами.
EP>Я приводил код, нужен только wrapper в пару строк для Range интерфейса, о котором я сразу и сказал
Автор: Evgeny.Panasyuk
Дата: 23.03.16
.Дата: 23.03.16
Ну вот нужно добавить. По сути и получится тоже самое. Да и на самом деле мне как пользователю наплевать как внутри реализовано. Главное быстро и удобно. Смотри на конечный результат.
S>>>> По алгоритму указанному в MinItem. А именно null не сравниваются для указателей.
EP>>>Добавь filtered во внутрь обёртки, при этом алгоритм фильтрации не нужно расписывать вручную — его заинлайнит компилятор.
EP>>>
EP>>>source | filtered([](auto &x){ return x != nullptr; })
EP>>>
S>> То есть мы должны сначала отфильтровать по null а затем применять искать минимум?
EP>Нет, не "сначала" отфильтровать, а применить ленивый фильтр, который даст вид range без nullptr.
То есть делать то же самое, что тебе не понравилось. У ребят сделано тоже самое. Только две ветки для валуе типов и Nullable
S>>Пока это никак не тянет на
S>>var МаксЗнач=source.MinItem(i => i.Value)?.Value
EP>Спрячь применение фильтра во внутрь обёртки, если тебе нужен именно этот вариант
И будет в итоге тоже самое.
S>>Я так понимаю async([i]{ return reschedule(), i*100; }); возвращает аналог Task?
EP>Да.
S>>А кто готовит автомат? В .Net этим занимается компилятор.
EP>Никто специальный автомат не готовит, я же говорю что это на основе stackful coroutines. Автомат нужен для stackless.
Я с вас хренею любите вы словами бросаться. По поводу await async куча статей с разбором как все работает. По С++ все туго.
Хоть бы ссылку на толковую статью.
S>>Кстати по поводу
S>> // await is not limited by "one level" as in C
S>>Есть мнтоды Task WhenAll , WhenAny
EP>Это не в тему. Смотри пример по ссылке — await из bar'а возвращает управление на самый вверх, в C# пришлось бы ставить await bar внутри foo, добавлять async, и так на всех уровнях. Тут же можно вызывать await на самом глубоком уровне, не меняя код на промежуточных.
Так await и показывает, что функция асинхронная. А вот вызов просто bar воспринимается как синхронная. Где логика?
S>> Ты всю эту библиотеку изучил? Лучше бы Linq изучил. Тогда вопросов бы таких не было.
EP>Лучше бы ты изучил STL, тогда хотя бы понял о чём речь
Я то как раз изучаю и понимаю о чем ты говоришь.
Выложил статью Кроссплатформенное использование классов .Net из неуправляемого кода. Или аналог IDispatch на Linux
Исходники лежат Здесь
Выложил статью
Разработка → Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux
Исходники здесь
Советую и тебе C# подтянуть.
S>>Вот когда покажешь такой же ваприант тогда поверю. Пока все мимо.
S>> То есть твой вариант не универсален.
EP>Почему он не универсален?
Я не могу его применить одинаково для валуе и ссылочных типов с учетом null.