Лямбда-исчисление в живых языках: от Lisp до современных стрелочных функций
Где именно лямбда-исчисление живёт в языках, на которых вы пишете каждый день: стрелочные функции как абстракции, вызов как бета-редекс, let как сахар, замыкания как …
33 материалов в этой теме.
Где именно лямбда-исчисление живёт в языках, на которых вы пишете каждый день: стрелочные функции как абстракции, вызов как бета-редекс, let как сахар, замыкания как …
Ленивое вычисление — это не экзотика Haskell, а способ разделить «что мы порождаем» и «сколько нам нужно». Разбираем thunk и call-by-need, генераторы, бесконечные списки, …
Почему разделяемое изменяемое состояние — источник почти всех багов конкурентности, и что предлагают взамен ФП-модели: STM, акторы, каналы, чистый параллелизм. С честной …
Как из маленьких функций собирать большие: композиция и её законы, каррирование и частичное применение, порядок аргументов data-first против data-last, конвейеры, …
В лямбда-исчислении нет true, false и if — и они не нужны: булево значение оказывается функцией выбора из двух аргументов, а весь набор логических операций собирается из …
Одна связная карта всех абстракций ФП: зачем нужна каждая ступень от Semigroup до Comonad, чем они отличаются по силе, как выбрать нужную под задачу и сколько всё это …
Как собрать из чистых функций целое приложение: функциональное ядро и императивная оболочка, решения как данные, что делать, когда сэндвич ломается, честная цена подхода …
Разбираем три правила переписывания лямбда-исчисления — переименование, вызов и упрощение — с полной пошаговой раскруткой редукций и рабочим редуктором на Python и …
Как суммы и произведения типов убирают невозможные состояния из программы, зачем нужна проверка исчерпывающности и во что обходится моделирование данных через ADT.
По этому запросу ничего не найдено.