Здравствуйте, vdimas, Вы писали:
VE>>Правильно. Но какая разница, вручную или нет, это ведь останется динамической типизацией. То, что в Хаскеле закладывается в систему типов (Maybe, Either, any other ADT), в C++ придётся реализовать искусственно, а значит от "телодвижений в рантайм" никуда не деться.
V>Еще как деться. Ты же сам недавно показал неплохие преобразования. Кол-во операций ИЗМЕНЯЕТСЯ, потому что изменяется кол-во состояний.
Странно, система типов одна, код один, а кол-во операций меняется. А динамическая типизация при этом убирается?
V>В твоем примере преобразования изчезало промежуточное состояние Either, т.е. изчезали все накладные расходы,связанные с его обслуживанием.
Spineless Tagless G-machine.
Только эти преобразования могут быть целиком на совести компилятора.