RU

Ленивый LINQ: разбираем yield и ленивые вычисления по кирпичикам. Часть 2

В первой части мы успешно вскрыли чёрный ящик LINQ: написали  Where  вручную, разобрались, как компилятор превращает  yield return &n…

.netlinqyieldc#итераторыкомпиляторленивые вычисленияотложенное выполнениеienumerabledeffered execution
Habr
RU

Ленивый LINQ: разбираем yield и ленивые вычисления по кирпичикам. Часть 2

В первой части мы успешно вскрыли чёрный ящик LINQ: написали Where вручную, разобрались, как компилятор превращает yield return в конечные автоматы,…

.netlinqyieldc#компиляторитераторыленивые вычисленияотложенное выполнениеienumerabledeffered execution
Habr
RU

Ленивый LINQ: разбираем yield и ленивые вычисления по кирпичикам

Каждый C#‑разработчик писал numbers.Where(x => x > 10).Select(x => x * 2)  — и удивлялся, узнав, что эта строчка ничего не в…

C#LINQyield.NETотложенные вычисленияdeffered executionитераторыIEnumerableленивые вычислениякомпилятор
Habr
RU

Разбираем map, filter, reduce, any, all, zip и enumerate в Python

Все мы начинали писать на Python примерно одинаково: создавали пустой список, запускали цикл for, проверяли условие через if и делали .append(). Это…

pythonmapfilterreduceфункциональное программированиегенераторы списковленивые вычислениярефакторинг кода