Функциональный TypeScript

functional typescript

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

И сделаем мы это, следуя следующим трем пунктам:

  • Используем простые функции вместо простых значений
  • Моделируем изменение данных как конвейер
  • Извлечем обобщенные функции

Итак, начнем-с!…

Функтор в JavaScript

Рассмотрим следующий код:

function plus1(value) {  
    return value + 1  
}  

Это простая функция, которая получает числовое значение и добавляет к нему единицу. Аналогичным образом мы можем сделать функцию plus2. Мы будем позже использовать эти функции:

function plus2(value) {  
    return value + 2  
}  

Или мы можем написать обобщенную функцию, чтоб использовать любую из этих функций по необходимости:

function F(value, fn) {  
    return fn(value)  
}
F(1, plus1) ==>> 2

Эта функция будет работать хорошо, пока будем ей передавать целочисленное значение.…

Области видимости переменных в JavaScript и их подводные камни

В этом посте мы разберемся с областями видимости в JavaScript. Обратим внимание на две вещи, которые могут приводить к проблемам, если вы о них не позаботитесь: область видимости переменных в JavaScript - функции, и они могут быть захвачены в замыкания.

Область видимости переменных определяет, где эта переменная доступна. Например, если переменная определена в начале функции, то она доступная внутри этой функции, но не снаружи, и обычно "умирает" с завершением функции.…

Жизненные уроки от бывалого программиста

За три десятилетия программистской деятельности, я усвоил пару-тройку уроков. Ниже несколько самых лакомых.

  • Клиенты знают, чего хотят, только после того, как это увидят это. Я усвоил это на моей первой работе. Клиенты не осознают, что, собственно, необходимо, пока вы им это не покажете. Функциональное прототипирование всегда выигрывает у набора слов.

  • При достаточном количестве времени, вся защита может быть взломана. В сегодняшнем мире невероятно сложно правильно построить защиту.

Общие сведения о языках программирования. Переменные и типы данных

Давайте сначала рассмотрим языки программирования не в узкопрофессиональном, а в более широком плане. Другими словами, я предлагаю вам сначала ознакомиться с самыми общими категориями, так или иначе практически воплотившимися во всех современных языках программирования. Без их понимания невозможно приступить к изучению ни первого в вашей жизни, ни последующих конкретных языков. Более того, не овладев общими понятиями, нельзя эффективно продвигаться в решении конкретных задач, усваивать уже устоявшиеся, а также новые технологии программирования.…

Специальные термины, используемые в программировании

У программистов имеется профессиональный жаргон, с помощью которого они могут обмениваться мыслями более лаконично. Мы сейчас познакомимся с той частью специальной терминологии, которая общепризнанна и широко применяется программистами при обсуждении языка и программ как в устной, так и письменной речи. Вот некоторые термины.

Регистровая зависимость — зависимость выражений языка или их частей (например, имен переменных, функций и т. д.) от того, строчными или прописными буквами они написаны.…

Программисты и потребители – фактор времени

Как когда то, программистам удалось отстоять свой особенный менталитет, то есть сохранить и расширить пропасть между программированием и применением продуктов этой деятельности. То, что это было, есть и всегда будет фикцией уже очевидно, но не всем очевиден тот момент, что эта пагубная наследственность пытается прочно укрепиться в современном интернет программировании. Как раньше, так и сейчас заказчика сразу начинают водить за нос, даже если он умело сопротивляется.…

11 причин оставить программирование своим хобби, но не делать его профессией

Какое прекрасное время было, когда большинство юношей хотели быть летчиками и моряками. Теперь большинство молодых людей, обдумывающих свои будущие занятия, стремятся быть IT-специалистами, то есть программистами. Чем они мотивируют свои желания? В первую очередь, естественно, востребованностью этой профессии на рынке труда, престижностью, модой.

Можно надеяться, многие, выбирая место и сферу приложения своих сил, делают это более-менее сознательно и представляют, что их ожидает в будущем.…

Понятие функции в программировании

f (x)

Что такое функция

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