Эта статья является продолжением "Итерируем всё вместе с Collection" и здесь я расскажу о встроенном механизме Collection — фильтрах.
Метка «функциональное программирование»
Механизм фильтров Collection
2014-06-11 в 12:11, admin, рубрики: javascript, node.js, Веб-разработка, итераторы, коллекции, функциональное программирование, метки: javascript, node.js, итераторы, коллекции, функциональное программированиеИтерируем всё вместе с Collection
2014-06-10 в 10:03, admin, рубрики: javascript, node.js, Веб-разработка, итераторы, коллекции, функциональное программирование, метки: javascript, node.js, итераторы, коллекции, функциональное программированиеВ современном JavaScript существует целый пласт различных видов итерируемых структур данных:
- Array
- TypedArrays
- Object
- Map
- Set
- String
А также появились генераторы и универсальный протокол @@iterator
, который позволят итерировать что угодно и как угодно. И в тоже время для некоторых типов данных (в основном для массивов) определены различные методы для удобной функциональной работы и простого итерирования, например, forEach, map или reduce, и всё было бы хорошо, однако:
- Большинство методов определены только для массивов;
- Определяемое API слишком примитивно и не покрывает целый ряд задач;
- До сих пор скорость выполнения нативных итераторов далека от идеала и существенно уступает реализации на циклах.
Erlang для самых маленьких. Глава 3: Базовый синтаксис функций
2014-02-07 в 14:50, admin, рубрики: erlang, Erlang/OTP, для самых маленьких, никакой императивной скверны, Программирование, функции, функциональное программирование, метки: erlang, для самых маленьких, никакой императивной скверны, функции, функциональное программированиеДоброго ночи! Мы продолжаем изучение Erlang для самых маленьких.
В прошлой главе мы рассмотрели как объявлять функции и как объединять их в модули. В этой главе мы рассмотрим синтаксис функций более подробно.
Проект по написанию книги «Квантовые вычисления и функциональное программирование»
2014-02-05 в 3:14, admin, рубрики: квантовые вычисления, книга, краудфандинг, функциональное программирование, я пиарюсь, метки: квантовые вычисления, книга, краудфандинг, функциональное программированиеИдея книги про модель квантовых вычислений появилась у меня в голове уже давно. Сразу после прохождения курса по квантовой механике и квантовым вычислениям на Coursera (краткое описание см. здесь) у меня в голове родился вопрос: «Почему же это курс по квантовым вычислениям устроен так, что программисту он довольно непонятен, но, скорее, рассчитан на физика?». Сама модель квантовых вычислений меня поразила до глубины души, и после глубочайших раздумий я начал поглощать одну книгу за другой, одну статью за другой. В итоге после прочтения и изучения более 20 источников на русском языке я прихожу к неутешительному выводу — ещё не написана книга о модели квантовых вычислений, которая объясняла бы эту модель прикладному программисту. Ведь что получается? Большинство источников сегодня рассказывают про ядерные спины, ионные ловушки, нотацию Дирака и суперпозицию, объясняя всё это для физика. Но как прикладной программист очень часто не имеет никакого понятия по физических процессах, происходящих внутри обычного процессора, так и в данном случае разъяснение физических принципов реализации унитарных преобразований в виде особого вида гамильтонианов в уравнении Шрёдингера больше затуманивает суть вещей для разработчика программ, нежели раскрывает красоту и мощь этой новой модели.
Именно эти размышления побудили меня начать обдумывание идеи о написании книги про квантовые вычисления, в которой не было бы акцента на физике процессов, но в которой давалось бы вполне доступное понимание того, как создавать квантовые алгоритмы. Ведь, например, вопросам квантовой схемотехники и проектированию алгоритмов в существующей литературе по квантовым вычислениям вообще не уделяется никакого внимания. Более того, в некоторых книгах говорится о том, что все существующие на сегодняшний момент квантовые алгоритмы являются результатом снизошедших на гениев озарений. Отчасти, это вполне так, поскольку квантовая механика в своей основе контр-интуитивна. Но разъяснить именно программисту-прикладнику то, как строить квантовые схемы для получения того или иного результата, вполне возможно.
Обработка событий в реальном масштабе времени с помощью SynapseGrid
2013-12-05 в 13:19, admin, рубрики: scala, Блог компании Праймтолк, параллельное программирование, реактивное программирование, функциональное программирование, метки: scala, параллельное программирование, реактивное программирование, функциональное программированиеЗанимались мы как-то обработкой аудио на Java с помощью сложных алгоритмов. Каждый кусочек аудио должен был пройти длинную цепочку обработки (20-50 алгоритмов разной степени сложности). Потоки аудио поступали параллельно, алгоритмы работали параллельно, и завершались в разные моменты. Некоторые алгоритмы нуждались в разной степени буферизации. Из кусочков аудио извлекалась информация повышающегося уровня абстракции, то есть начиная с какого-то уровня уже шло не аудио, а извлечённая информация об этом аудио.
Всё хозяйство должно было работать в рамках одного экземпляра приложения, но при этом должно было быть несколько вложенных почти независимых очень похожих контейнеров для клиентского кода (типа Bean'ов).
С самого начала мы не ставили задачу всеобщей унификации, и решали в каждой части системы по своему. Где-то использовали потоки для длительных задач, где-то создавали цепочки вызовов, где-то — модель подписки. Так как система была довольно большой, то практически все известные способы декомпозиции и обработки были задействованы в той или иной степени. Потом мы обнаруживали общность и реализовывали похожие решения в разных частях системы. А потом изобрели первую версию того, что сейчас мы называем система контактов или SynapseGrid.
Читать полностью »
Конспекты лекций «Haskell как первый язык программирования». Часть2
2013-12-02 в 17:43, admin, рубрики: haskell, функциональное программирование, метки: haskell, функциональное программированиеПривет Habr! Сегодня мы поговорим о полиморфизме функций, операторах и карринге. Напоминаю, что лекции рассчитаны на новичков, а конспект предпологает сжатую форму изложения. Если все еще интересно… Читать полностью »
Конспекты лекций «Haskell как первый язык программирования». Часть1
2013-11-28 в 17:48, admin, рубрики: haskell, функциональное программирование, метки: haskell, функциональное программирование
Привет Habr! Сегодня я достал свои старые лекции по курсу «Haskell как первый язык программирования» Сергея Михайловича Абрамова и попробую максимально доходчиво и с примерами рассказать об этом замечательном языке тем, кто с ним еще не знаком. Рассказ ориентирован на неподготовленного читателя. Так что, даже если вы впервые услышали слово Haskell… Читать полностью »
Прелюдия или как полюбить Haskell
2013-11-26 в 11:45, admin, рубрики: haskell, функциональное программирование, метки: haskell, функциональное программирование Добрый дня, уважаемыее. Всегда трудно начинать. Трудно начать писать статью, трудно начать отношения с человеком. Очень трудно, бывает, начать изучать новый язык программирования, особенно, если этот язык рушит все представления и устои, которые у вас были, если он противоречит привычной картине мира и пытается сломать вам мозг. Пример такого языка — Haskell.
Читать полностью »
(возможно) Первый в мире генератор читабельных, хоть и чрезвычайно медленных, парсеров на JS
2013-11-07 в 4:14, admin, рубрики: functional programming, javascript, parser, peg, парсеры, функциональное программирование, метки: functional programming, javascript, parser, peg, парсеры, функциональное программированиеЕсли ты меня вообще помнишь, читатель — то, наверняка, помнишь и то, что мои посты в подавляющем количестве случаев разочарующе длинны и довольно-таки часто им предшествует лирическая предыстория. Заверяю тебя, этот пост отнюдь не исключение — я настолько же надёжный графоман, как и ранее, а то ещё и более закалённый.
По сходным обстоятельствам, мало что из описанного в тех постах было доведено до ума и они, преимущественно, содержали лишь общие предпосылки к размышлениям. И по этому пункту я так же не менее верен тебе и сейчас, дорогой читатель.
Как и раньше, в посте будет множество гиперссылок и кода. А ещё больше — кириллических букв.
Всё как в старые добрые времена. Добро пожаловать, друг.
Erlang для самых маленьких. Глава 2: Модули и функции
2013-10-13 в 16:49, admin, рубрики: erlang, Erlang/OTP, для самых маленьких, модули, никакой императивной скверны, Программирование, функции, функциональное программирование, метки: erlang, для самых маленьких, модули, никакой императивной скверны, функции, функциональное программированиеДоброго вечера, дорогие Хабровчане. Мы продолжаем изучение Erlang для самых маленьких.
В прошлой главе мы рассмотрели базовые типы данных, списки и кортежи. А так же научились пользоваться сопоставлением с образцом и генератором списков.
В этой главе мы поднимемся на следующую ступень и рассмотрим модули и функции.