Функциональное программирование на С++

топ 100 блогов zabivator08.02.2010 Бьярн Страуструп - "Дизайн и эволюция языка С++" ==================> "Как я родил ёжика"
Андрей Александреску - "Современное проектирвоание на языке С++" ======> "Как я трахнул ёжика"

C++ - ужасный, страшный, и совершенно уродский язык.
Однако, знаете ли вы, что
* С++ шаблоны - это полноценная нетипизированная лямбда? (вы не ослышались, нетипизированная. Сами шаблоны внутри себя типов не имеют).
* На шаблонах можно построить нумералы Чёрча
* На шаблонах выполняются три типа редукции
* Инстанцирование шаблона - это редукция терма в нормальную форму
* Шаблоны С++ - полноценный glue language для метапрограммирования, прозрачно проинтегрированный с самим С++ (lisp проинтегрирован лучше, template haskell - хуже)
* Язык шаблонов тьюринг-полон, и программы на нём написанные выполняются на этапе компиляции

В целом, однозначно, я не видел настолько мощного языка для обобщенного программирования, метапрограммирования.
В ocaml не хватает параметрического полиморфизма, в lisp типизации (в С++ нетипизированная лямбда внутри шаблонов, но типизированный результирующий код. Уникальный feature, нигде больше такого не видел), а в haskell - простоты.
Да, вы не ослышались, шаблоны С++ и язык на их базе очень прост.
Как-нибудь напишу примерчики и маленький туториал
Теперь ложка дёгтя

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

Знакомиться just for fun - обязательно. Я уверен, что у шаблонов C++ есть чему поучиться программистам на всех языках.
Книги для чтения
Функциональное программирование на С++ Функциональное программирование на С++ Boost.MPL - metaprogramming library

Оставить комментарий

Архив записей в блогах:
Газета Daily Telegraph, укомплектованная призовыми долбоебами, нашла в России "эскадроны смерти". Не в ЦРУ,- про эти-то все давно известно, с их секретными тюрьмами и agent provocateur'ами, а значит и писать не будем - а в России. Опять же - сведения из "надежного ...
Пожалуй, самое время повторить зимо-ненависти-псто. Да, всю свою сознательную жизнь ненавижу зиму. Ненависть НЕ утихает. И не надо мне рассказывать про стерпится-слюбится. Если за 46 лет не слюбилось, то вряд ли уже. Скорее, ре-лоцируюсь, хотя бы на холодное время года, чем. ...
Дамы! И немногочисленные господа! У меня тут назрел неожиданный, даже внезапный вопрос... вы не спрашивайте, с чего это я вдруг, лучше сразу к делу. Меня заинтересовало вот что. Кто-нибудь помнит, когда примерно служба в армии стала самым страшным ...
Алексей Хлопотов ( Gur Khan )в своем блоге в материале "Как МГТ заменит "мотолыгу" пишет, что основной "рабочей лошадкой" Российской Армии является многоцелевой плавающий легкий бронированный транспортер-тягач МТ-ЛБ, принятый на вооружение аж в 1964 году. Вот уже больше ...
Мне часто пишут письма те, чью работу я похвалил. Они говорят мне "спасибо". И мне никогда не пишут писем те, чью работу я обосрал. А ведь в процессе обсирания я высказываю гораздо более ценное мнение, чем когда я кого-то хвалю. Похвала - это мусор. А обсер - это валюта. Я никогда не де ...