Посты с тэгом функциональное программирование


Какая асинхронность должна была бы быть в Python

В последние несколько лет ключевое слово async и семантика асинхронного программирования проникла во многие популярные языки программирования: JavaScript, Rust, C#, и многие другие. Конечно, в Python тоже есть async/await, они появились в Python 3.5.

В этой статье хочу обсудить проблемы асинхронного кода, порассуждать об альтернативах и предложить новый подход поддерживать и синхронные, и асинхронные приложения одновременно.
Читать дальше →



[Из песочницы] Как скомпилировать декоратор — C++, Python и собственная реализация. Часть 2

Декораторы — одна из самых необычных особенностей Python. Это инструмент, который полноценно может существовать только в динамически типизированном, интерпретируемом языке. В первой части статьи мой товарищ Witcher136 показал, как в С++ реализовать наиболее приближенную к эталонной (питоновской) версию декораторов.


Я же расскажу про то, как решил попытаться реализовать декораторы в компилируемом языке программирования, для чего в итоге написал написал собственный небольшой компилятор на Haskell на основе LLVM.


Читать дальше →


[Из песочницы] Функциональное программирование на Python для самых маленьких — Часть 1 — Lambda Функция



Я решил написать эту серию статей ибо считаю что никто не должен сталкиваться с той стеной непонимания с которой столкнулся я где для того чтобы понять что то в Функциональном Программировании (Далее ФП) тебе надо уже знать многое в ФП. Эту статью я старался написать максимально просто — настолько понятно чтобы ее суть мог уловить мой племянник школьник который сейчас делает свои первые шаги в Python

Небольшое введение


Для начала давайте разберемся что такое функциональное программирование, в чем его особенности, зачем оно было придумано и где и как его использовать. Стоп… А зачем? Об этом написаны тонны материалов да и в этой статье судя по всему эта информация не особо нужна. Эта статья написана для того чтобы научились разбираться в коде который написан в функциональном стиле. Но если вы все таки хотите разобраться в истории Функционального Программирования и разоб


Как скомпилировать декоратор — C++, Python и собственная реализация. Часть 1

Данная серия статей будет посвящена возможности создания декоратора в языке С++, особенностям их работы в Python, а также будет рассмотрен один из вариантов реализации данного функционала в собственном компилируемом языке, посредством применения общего подхода для создания замыканий — closure conversion и модернизации синтаксического дерева.



Дисклеймер
В данной статье под декоратором понимается не паттерн проектирования, а декоратор в Python — способ изменить поведение функции. Декоратор в Python это функция, применяемая к другой (декорируемой). Функция-декоратор создает замыкание (новую функцию), вызывающее декорируемую функцию внутри себя и делающее что-то еще нужное программисту (логгирование вызовов, захват ресурсов и т.д.), а интерпретатор Python затем «привязывает» к


[Перевод] Учим функциональное программирование в Python за 10 минут


Фото: Chris Ried

В этой статье, Вы поймете, что такое функциональная парадигма и как пользоваться функциональным программированием в Python. Также узнаете об абстракции списков и других способах абстракции (list comprehensions).

Функциональная парадигма


В императивной парадигме, Вы исполняете программу путем указания последовательности действий, которые позже выполняются. В это время, состояния (Прим. переводчика: переменных, массивов, и т.д.) меняются. Например, пусть переменная А хранит значение 5, позже Вы изменяете значени


[Перевод] Монады за 15 минут

Вступление


На конференции YOW! 2013 один из разработчиков языка Haskell, проф. Филип Вадлер, показал, как монады позволяют чистым функциональным языкам осуществлять императивные по сути операции, такие, как ввод-вывод и обработку исключений. Неудивительно, что интерес аудитории к этой теме породил взрывной рост публикаций о монадах в Интернет. К сожалению, бо́льшая часть этих публикаций использует примеры, написанные на функциональных языках, подразумевая, что о монадах хотят узнать новички в функциональном программировании. Но монады не специфичны для Haskell или функциональных языков, и вполне могут быть проиллюстрированы примерами на императивных языках программирования. Это и является целью данного руководства.

Чем это руководство отличается от остальных? Мы попытаемся не более чем за 15 минут «открыть» монады, используя лишь интуицию и несколько элементарных пр


[Перевод] Как сделать функции на Python еще лучше

Собственно, заголовок этой замечательной статьи от Джеффа Кнаппа (Jeff Knupp), автора книги "Writing Idiomatic Python" полностью отражает ее суть. Читайте внимательно и не стесняйтесь комментировать.
Поскольку очень не хотелось оставлять в тексте важный термин латиницей, мы позволили себе перевести слово «docstring» как «докстрока», обнаружив этот термин в нескольких русскоязычных источниках.
Читать дальше →



[Из песочницы] SAP и Python интеграция или как забрать данные из SAP проще

Добрый день, Хабр!

Хочу поделится опытом интересной задачи по тому как без труда взаимодействовать с системами SAP с помощью Python — не важно какой модуль или версия платформы.

Если интересно только техническое решение, то пропускайте всю лирику и смотрите пример реализации.

Лирика


Все свелось к тому, что одному из заказчиков потребовалось выгружать данные из своей SAP ERP системы, путем манипуляций уже создавать отчеты и рассылки интересованным людям по email, а также другие действия.

Собственно, при обсуждениях решения такой задачи мы, как подрядчик, предлагали различные варианты и один из самых очевидных это все сделать именно с помощью внутреннего функционала SAP, по-простому среди «саперов» за Зедить все с помощью ABAP.

Первое с чем мы столкнулись, это не совсем прозрачные со слов заказчика критерии выборки данных, а именно, данные каких таблиц, зачем, почему, какие действия с ними необходимо совершить. Если пр


«Простое» программирование на python


functools (это такая свалка для всяких ненужных мне вещей :-).
— Гвидо ван Россум

Может показаться, что статья о ФП, но я не собираюсь обсуждать парадигму. Речь пойдет о переиспользовании и упрощении кода — я попытаюсь доказать, что вы пишете слишком много кода, поэтому он сложный и тяжело тестируется, но самое главное: его долго читать и менять.


В статье заимствуются примеры и/или концепции из библиотеки funcy. Во-первых, она клевая, во-вторых, вы сразу же сможете начать ее использовать. И да, нам понадобится ФП.

Читать дальше →


Некоторые приемы функционального программирования в Python

Привет, Хабр!
В этой статье я хотел бы рассказать о том, что пришло в Python из функциональных языков программирования. Заинтерксовавшихся прошу под кат.

Читать дальше →