Pull to refresh

Comments 11

Ну, судя по минусам, писать статью о том, как это работает и почему не вешает компилятор на несколько секунд, не стоит, понятно.

Возможно, минусующие среагировали на $mol_ в названии типов? Я с ходу подумал было, что вы выкатили реализацию на чем-то отличном от TS. Но перешел по ссылке - и там, конечно, чистый TS, так что сравнение вполне честное

Заминусовали, может, и зря.

Но с "куда проще" не согласен. У автора в статье кода раза в 2 меньше. Может, конечно, из-за разного форматирование / разбивки по строкам. Но и существенного выигрыша в сложности тоже не вижу в вашем варианте.

Из плюсов - финальный тип вызывается напрямую

type result = $mol_type_int_calc< '7+5-2*2+1' >

тогда как в статье обертка из двух типов (

CalcByExpression<StringToCalcExpression<'7+5-2*2+1'>>;

Кода больше из-за большей функциональности:

  • Поддержка чисел до 2^13

  • Поддержка скобок

  • Поддержка пробелов

  • Поддержка возведения в степень

  • Поддержка сравнения чисел

  • И всё это не вешает компилятор ненужными рекурсиями

Но сложность не в строках кода измеряется, а во времени, которое нужно, чтобы в нём разобраться.

Для статьи нужен тег: Ненормальное программирование )

как бы я хотел не встретить такое в реальном проекте

Sign up to leave a comment.

Articles