Re[38]: Есть ли подобие LINQ на других языках/платформах?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 23.04.21 09:24
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

I>>Ты пишешь "Xml там IQueryable на самом то деле. ". Смотри сам http://rsdn.org/forum/flame.comp/7994997.1
Автор: Serginio1
Дата: 21.04.21

I>>Я не ходил по ссылке, поверил тебе на слово.
I>>Похоже, судя по твоим воплям, ты снова написал не то, что думал?
S> Я тебе исходники давал https://github.com/Microsoft/referencesource/blob/master/System.Xml.Linq/System/Xml/Linq/XLinq.cs#L1457
S>Но ты не читатель!!!!!

Ты хочешь что бы я каждый раз сверял одни твои слова с другим твоими словами?

I>>Вместо yield a пишем observer.next(a)

S> Приведи реальный код. Заметь я тебе даю кучу ссылок но ты их и не читаешь и дальше плетешь всякую хрень.

Привожу в который раз https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/filter.ts
Здесь прямо указывается subscriber.next(value)
Тебе понятно, как это выглядит без yield?

S>https://docs.microsoft.com/en-us/archive/msdn-magazine/2017/june/essential-net-custom-iterators-with-yield

S> То есть такой код.

Почему тебе недостаточно вот этого примера https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/filter.ts

Я не хочу тратить время непойми на что. Объясни, что непонятно с filter. здесь ровно то, о чем я говорю — как yield Заменяется на next.
Болек того, там же целая куча операторов https://github.com/ReactiveX/rxjs/tree/master/src/internal/operators

Почему ты спрашиваешь у меня, когда можно сходить по ссылке? Можно ведь хоть во все операторы заглянуть, но тебе нужен особенный вариант

I>>На сколько я понимаю, C# эквивалент это что то навроде AsyncObservableBase

I>>https://github.com/dotnet/reactive/blob/9f2a8090cea4bf931d4ac3ad071f4df147f4df50/AsyncRx.NET/System.Reactive.Async.Core/System/Reactive/AsyncObservableBase.cs

S> RX это обработка асинхронных очередей достаточно просто решается через IAsyncEnumerable


Ты путаешь AsyncEnumerable и обычный RX Observable.
AsyncEnumerable это pull-модель. RX — push, и это Observable. AsyncEnumerable это недавнее расширение, я про него ничего не говорю.

То есть, у нас задача — сконвертить IEnumerable в Observable.
Для этого надо вызвать оператор ToObservable.
Смотрим вместе "2 строчки":
https://github.com/dotnet/reactive/blob/9f2a8090cea4bf931d4ac3ad071f4df147f4df50/Rx.NET/Source/src/System.Reactive/Linq/Observable/ToObservable.cs

Где ты здесь видишь yield ?
Где подтверждение твоих слов?

Гы-гы. Деятель, взял другую либу и ищет там непойми что.

S>https://github.com/dotnet/reactive/blob/9f2a8090cea4bf931d4ac3ad071f4df147f4df50/Ix.NET/Source/System.Linq.Async/System/Linq/Operators/TakeWhile.cs

S> Заметь как элеганто решается с помощью yield

Алё! Ты показываешь другую либу!!!!!!!!!!!!!!!!!!!!
Смотри на урл свой — у тебя Ix.NET — Ix.NET/Source/System.Linq.Async
Ты чё, реально недогоняешь, что это совсем другой механизм?

Вот RX TakeWhile — конский класс
https://github.com/dotnet/reactive/blob/9f2a8090cea4bf931d4ac3ad071f4df147f4df50/Rx.NET/Source/src/System.Reactive/Linq/Observable/TakeWhile.cs

Смотрим как это в жээсе:
https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/takeWhile.ts

Итого — с учето вызываемых функций — ровно то же.

I>>Это не важно, что от чего наследуется. При помощи IQueryable можно сделать всё, добавляя провайдер.

I>>С IEnumerable так не получится.

S> То есть минус ты мне поставил за то, что IEnumerable так не может при работе с БД, поэтому yield отстой и он не нужен и без него Linq и без него линк прекрасно обходится!

S>За что минус!!!!

За то, что ты приписываешь мне слова "yield — отстой" и никак не можешь этого заметить.

yield как и любой инструмент имеет границы применения. Внутри границ — идеален, вне границ — не годится.
Вот и всё.
А для тебя, похоже, сам факт существования границ применимости лично тебя оскорбляет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.