Комментарии 11
Всё это куда проще реализуется:
Ну, судя по минусам, писать статью о том, как это работает и почему не вешает компилятор на несколько секунд, не стоит, понятно.
Заминусовали, может, и зря.
Но с "куда проще" не согласен. У автора в статье кода раза в 2 меньше. Может, конечно, из-за разного форматирование / разбивки по строкам. Но и существенного выигрыша в сложности тоже не вижу в вашем варианте.
Из плюсов - финальный тип вызывается напрямую
type result = $mol_type_int_calc< '7+5-2*2+1' >
тогда как в статье обертка из двух типов (
CalcByExpression<StringToCalcExpression<'7+5-2*2+1'>>;
Кода больше из-за большей функциональности:
Поддержка чисел до 2^13
Поддержка скобок
Поддержка пробелов
Поддержка возведения в степень
Поддержка сравнения чисел
И всё это не вешает компилятор ненужными рекурсиями
Но сложность не в строках кода измеряется, а во времени, которое нужно, чтобы в нём разобраться.
Для статьи нужен тег: Ненормальное программирование )
Следующий шаг: нахождение производных на типах!
как бы я хотел не встретить такое в реальном проекте
Автор, ты меня пугаешь изващенностью своего ума
Но, черт возьми, это гениально
Тайпскрипт клевый!
Тут на волне Wordle-хайпа недавно проскакивала реализация Wordle на типах Тайпскрипта.
Калькулятор на типах TypeScript