Функциональное программирование на примере работы с матрицами из теории линейной алгебры

Вступление В основе работы с матрицами (в данной статье мы будем рассматривать только двумерные матрицы) лежит мощная математическая теория из области линейной алгебры. Одно определение или действие следует из другого, одна функция вызывает другую. Поэтому для...→ Читать внимательно

Натягиваем ФП на ООП

Некоторое время назад, вернувшись после полугодового отпуска в функциональном мире, назад в ООП, я в который раз наступил на привычные грабли: случайно изменил состояние. private double fBm(Vector2D v, int y) { double result = 0f; double freq = Frequency; for (int i = 0; i < Octaves; ++i) { result += NoiseFn(permutation, v * freq) * Amplitude; freq *=...→ Читать внимательно

Может ли компания с десятками тысяч сотрудников быть Agile: опыт МТС

Директор центра инноваций МТС Владимир Хренков рассказывает, как сохранить гибкость при крупных размерах. Нет, это не про идеальный шпагат для тяжеловеса. Речь идет об Agile — методике, позволяющей разрабатывать гибкое ПО, которое бы отвечало всем требованиям современного...→ Читать внимательно

Может ли компания с десятками тысяч сотрудников быть Agile: опыт МТС

Директор центра инноваций МТС Владимир Хренков рассказывает, как сохранить гибкость при крупных размерах. Нет, это не про идеальный шпагат для тяжеловеса. Речь идет об Agile — методике, позволяющей разрабатывать гибкое ПО, которое бы отвечало всем требованиям современного...→ Читать внимательно

Параллельная быстрая сортировка на Хаскеле

Прим. перев.: Это перевод истории о том, как нелегко оказалось написать параллельную быструю сортировку (quicksort) на Хаскеле. Оригинал статьи написан в 2010 году, но, мне кажется, он до сих пор поучительный и во многом актуальный. Есть много примеров того, как Хаскель делает...→ Читать внимательно

Функциональные языки в разработке аппаратуры

Функциональные языки, как правило, не слишком подходят для низкоуровнеого программирования, хотя и применяются для кодогенерации. примеры проектовгенерация безопасного кода на C (используется в лаборатории Касперского) Ivory, поддержка реактивного программирования на...→ Читать внимательно