Блог Василия Воронкова

О программировании и не только.

Browse by Tags

Tagged Content List
  • Blog Post: Алгебраические типы. Часть 3. Полиморфные варианты

    Главный недостаток алгебраических типов явным образом следует из их главного преимущества перед классами в ООП. В прошлой заметке мы обсуждали тот факт, что алгебраические типы являются "закрытыми", и вы не можете добавить новый конструктор, не изменив само объявление алгебраического типа, что позволяет...
  • Blog Post: Алгебраические типы. Часть 2. ООП как путь к динамической типизации

    Возможно, вам доводилось слышать такое утверждение о языке программирования Хаскелл - Хаскелл это полностью статически типизированный язык. Строго говоря, это, конечно же, не совсем так, но сейчас речь не об этом. Согласитесь, что это утверждение в каком-то плане интригует? Нам как бы намекают, что есть...
  • Blog Post: Алгебраические типы. Часть 1

    В теории типов алгебраическим типом данных называют такой тип, который представляет собой объединение различных значений, причем каждое из этих значений является отдельным типом данных. C#-программисту на первый взгляд такая формулировка может показаться весьма туманной. (И не в последнюю очередь потому...
  • Blog Post: Чистые функции

    На первый взгляд с чистыми функциями все просто. Функция называется чистой, если она удовлетворяет двум требованиям: Функция всегда возвращает одно и то же значение для одних и тех аргументов. Т.е. если мы один раз вызвали чистую функцию с аргументами, к примеру, 12 и 42, то когда нам потребуется...
  • Blog Post: Эти удивительные каррированные функции

    Имея в языке только каррированные функции и левоассоциативный оператор вызова, вы можете с легкостью имитировать такие возможности как передача неограниченного количества параметров, при этом не вводя в язык какие-либо дополнительные механизмы. К примеру, сколько аргументов у такой функции: out...
  • Blog Post: Каррирование и частичное применение

    Наверняка вы уже слышали такие термины как каррирование и частичное применение . Термины эти используются достаточно широко, однако несмотря на это существует определенная путаница, из-за которой некоторые даже считают, что каррирование и частичное применение - это одно и то же. Кто в этом виноват? Наверное...
  • Blog Post: Функциональный и императивный

    А какой код, собственно, является императивным? Как ни странно, это не самый тривиальный вопрос. "Императивный" часто противопоставляется "функциональному", когда формально эти понятия не связаны. Правда в том, что функциональный код по идее не является императивным, но, согласитесь, что подобная формулировка...
Page 1 of 1 (7 items)