Как в Haskell: Final Tagless и eDSL на концептах

RU / День 1 / 12:30 / Зал 4

Вместе с С++20 пришла новая языковая функциональность — концепты. И хотя создатели открещиваются от того, что концепты это аналог классов типов, тем не менее некоторые иерархии концептов уж очень похожи на таковые в Haskell. Концепты — инструмент новый, и практики его использования еще предстоит выработать. Ожидается, что концепты изменят сам стиль разработки на С++, что подтверждается практикой использования классов типов в Haskell. Но что еще можно сделать с помощью концептов, какие идеи стоит рассмотреть?

В этом докладе мы будем имплементировать дизайн-подход из Haskell, известный как Final Tagless. Мы рассмотрим, что это такое, и как можно выразить Final Tagless с помощью концептов. Мы построим простой eDSL на FT и обсудим его свойства.

Комментарий программного комитета

Идея подсматривать в других языках удачные концепции и реализовывать их аналоги в C++ очень богата и имеет давнюю историю. Александр покажет, как это можно осуществить на практике, и перевести элементы Haskell на C++ используя концепты.

Скачать презентацию