Здравствуйте, Mr.Cat, Вы писали:
VD>>Ваши континюэшоны есть много где. MC>Только в половине случаев они будут escape-only.
Что означает сие высказывание?
MC>Плюс, в scheme уже есть готовая инфраструктура работы с континуациями и готовое комьюнити, которое знакомо с континуациями.
Ну, комьюнити — это сильно конечно. А инфраструктура дело наживное. Вон даже в Моно хотя всроить континюэшоны в рантайм.
MC>Достаточно хорошо продуманы и реализованы на уровне библиотек (в той же plt) вещи более высокого уровня, чем простой call/cc (например, shift/reduce, composable continuations, serializable continuations). MC>А в этом "много где" — кто даст гарантию, что не придется писать shift/reduce руками и найдутся в комьюнити люди, у которых можно будет консультироваться?
Ну, если вспомнить, что Схема язык не лучше и не хуже чем другие и что комьюнити у него не самый огромный, то на все вопросы можно смело ответить — "да".
VD>>И их почти куда угодно можно приделать. MC>И будет БДСМ: либо бондаж с чем-то типа монады Cont, либо садо-мазо с ручным CPS.
Да какая разница что там будет? Фанатство каое-то. Это чисто технический аспект. К тому же для веб-фрэймворков вообще не важны аспекты производительности, так как передача континиэшонов не будет в этой задаче занимать основное время. Есть туча фрэймворков использующих интерпретируемые языки для описания вокфлоу веб-сайтов и никто не жалуется на производительность.
Меж тем кроме вокфлоу, проблему которого и решают континюэшоны, есть еще и обычный код которого по любому прийдется писать много.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.