Движение к функциональному программированию началось всерьез примерно десятилетие назад. Мы видели как такие языки как Scala, Clojure и F# стали привлекать внимание. Это движение было больше чем просто обычное восхищение «О, круто, новый язык!». Было что-то действительно побуждающее это движение — или мы так думали.
Рубрика «functional programming» - 5
Прагматичное функциональное программирование
2017-08-18 в 9:55, admin, рубрики: clojure, functional programming, uncle bob, Совершенный код, функциональное программированиеМемоизация и каррирование (Python)
2017-08-17 в 16:26, admin, рубрики: functional programming, pythonПривет, уважаемые читатели.
В этой статье попробуем разобраться что такое мемоизация и каррирование, и как эти методы реализованы в стандартной библиотеке Python.
Читать полностью »
Как использовать implicit’ы в Scala и сохранить рассудок
2017-07-04 в 6:31, admin, рубрики: functional programming, implicit, scala, type level programming, функциональное программирование
Scala богата выразительными средствами, за что ее и не любят опытные программисты на классических ООП-языках. Неявные параметры и преобразования — одна из самых спорных фич языка. Слово "неявные", уже как-бы намекает на что-то неочевидное и сбивающее с толку. Тем не менее, если с ними подружиться, implicit'ы открывают широкие возможности: от сокращения объема кода до возможности многие проверки делать в compile-time.
Хочу поделиться своим опытом по работе с ними и рассказать о том, о чем пока умалчивает официальная документация и блоги разработчиков. Если вы уже знакомы со Scala, пробовали использовать неявные параметры, но все еще испытываете некоторые сложности при работе с ними, либо хотя-бы о них слышали, то этот пост может оказаться вам интересен.
Функциональное программирование в Scala — нужно ли оно вообще?
2017-06-18 в 6:32, admin, рубрики: functional programming, scala, Программирование, функциональное программированиеВ этой статье я хотел бы на примере простого чисто функционального кода показать, как он видоизменяется при добавлении требований к тестируемости и расширяемости, и что же получается в итоге. Надеюсь, это будет интересно всем, кто интересуется дизайном ПО и функциональным дизайном в частности. Также желательно немного понимать язык Scala, ну или уметь быстро разбираться.
Читать полностью »
Переосмысливая JavaScript: break и функциональный подход
2017-06-02 в 11:44, admin, рубрики: functional programming, javascript, переводПривет! Предлагаю вам статьи Rethinking JavaScript: Replace break by going functional.

В моей предыдущей статье Rethinking JavaScript: Death of the For Loop (есть перевод: Переосмысление JavaScript: Смерть for) я пытался убедить вас отказаться от for в пользу функционального подхода. И вы задали хороший вопрос "Что на счет break?".
break это GOTO циклов и его следует избегать
Нам следует отказаться от break также, как мы когда-то отказались от GOTO.
Вы можете думать, "Да ладно, Джо, ты преувеличиваешь. Как это break это GOTO?"
Переосмысление JavaScript: Смерть for
2017-05-18 в 13:41, admin, рубрики: ES6, functional programming, javascript
Цикл for хорошо послужил нам, но он устарел и должен уступить место более новым, функциональным техникам программирования.Читать полностью »
Курсы Computer Science клуба, весна 2017
2017-04-10 в 12:21, admin, рубрики: big data, CUDA, functional programming, gpgpu, gpu, gpu programming, idris, spark, Блог компании СПБАУ, Большие данные, зависимые типы, функциональное программирование
Computer Science клуб вот уже 10 лет проводит открытые курсы по компьютерным наукам. Большинство этих лекций стараниями Лекториума записаны на видео и лежат в открытом доступе. В этом семестре выложены уже три новых курса, которые до этого не читались в клубе: «Программирование с зависимыми типами на языке Idris», «Вычисления на GPU. Основные подходы, архитектура, оптимизации», «Методы и системы обработки больших данных».
Читать полностью »
Node.js Streams и реактивное программирование
2017-03-31 в 2:39, admin, рубрики: functional programming, javascript, node.js, reactive extensions for javascript, reactive programming, StreamsВ этой статье мы попробуем решить реальную проблему при помощи Node.js Stream и чуточку Reactive Programming. В последнем не уверен – RP, в какой-то мере, "жупел"(как перевести buzzword?) о котором все говорят, но никто не "делает".
Статья рассматривает практический пример и ориентирована на знакомого с платформой читателя, по-этому намеренно не объясняет базовые понятия – если что-то непонятно по Stream API, то стоит обратится в документацию платформы или в какой-нибудь ее пересказ(например, этот).
Начнем с описания проблемы: нам нужно построить “паука” который заберет все данные с “чужого” REST API, как-то их обработает и запишет в “нашу” базу данных. Для удобства воспроизведения и моделирования мы опустим некоторые детали о конкретном API и базе данных(в реальности это было API одного известного стартапа связанного с гостиницами и Postgres база данных).
Функциональный C#
2017-03-30 в 18:25, admin, рубрики: .net, C#, Either, functional programming, linq, PipeTo, функциональное программированиеC# — язык мультипарадигмальный. В последнее время крен наметился в сторону функциональщины. Можно пойти дальше и добавить еще немного методов-расширений, позволяющих писать меньше кода, не претендуя при этом на то, чтобы превратить язык в F#.Читать полностью »
Функциональное программирование и c++ на практике
2017-03-22 в 15:59, admin, рубрики: c++, functional programming, функциональное программированиеФункциональное программирование (далее ФП) нынче в моде. Статьи, книги, блоги. На каждой конференции обязательно присутствуют выступления, где люди рассказывают о красоте и удобстве функционального подхода. Я долгое время смотрел в его сторону издалека, но пришла пора попробовать применить его на практике. Прочитав достаточное количество теории и сложив в голове общую картину я решил написать небольшое приложение в функциональном стиле. Так как в данный момент я c++ программист, то буду использовать этот замечательный язык. За основу я возьму код из моей предыдущей статьи, т.е. моим примером будет упрощенная 2Д симуляция физических тел.
Читать полностью »
