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

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

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

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

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

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

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

Архив записей в блогах:
А ведь снеговики так похожи на нас. Они так же эфемерны, так же знают, что растают - не сегодня-завтра, но растают. Обязательно. Исчезнут...навсегда. Знают, да. И всё равно - улыбаются. Совсем, как мы, люди... Совсем, как мы... Иногда легкомыслие равноценно отваге. ...
После 10 лет жизни в районе Портленда, Орегон, особенно центральный, мною очень любим за дивную природу. Ездили мы туда множество раз, вот например давний пост о поездке в Центральный Орегон с папой: https://mary-spiri.livejournal.com/35117.html , а вот большой описательный пост про те ...
Аналитическая компания «Крибрум» провела исследование сообщений с признаками фейков о QR-кодах. За последний месяц обнаружено девять подобных сюжетов. По данным направлениям обнаружено 34 787 сообщений в социальных медиа. Самым большим сюжетом, который насчитывает 34,4 тысячи сообщений, ...
Редко фигачу в этот тэг чужие фото, обычно сам так развлекаюсь. Но тут сотрудничек ща подогнал прекрасное, сфоткал по дороге на работу. Рекомендую нажать на фото. ...
Белорусский президент сказал, что в случае возможного конфликта с НАТО армия его страны вступит в бой вместе с российской . Дорогие френды, а вы верите батьке? Что в случае конфликта Беларусь выберет сторону России? Беларусь, которая изымает из продажи польские глобусы, где Крым окраш ...