Сообщение Re[2]: Ленивость vs. вычисление когда доступны данные от 02.07.2015 17:10
Изменено 02.07.2015 17:15 VladD2
Здравствуйте, WolfHound, Вы писали:
WH>С побочными эффектами ты сильно погорячился.
WH>Эта модель их не допускает.
Очень даже допускает. И я их делал.
WH>С побочными эффектами ты сильно погорячился.
WH>Эта модель их не допускает.
Очень даже допускает. И я их делал.
Re[2]: Ленивость vs. вычисление когда доступны данные
Здравствуйте, WolfHound, Вы писали:
WH>С побочными эффектами ты сильно погорячился.
WH>Эта модель их не допускает.
Очень даже допускает. И я их делал.
Тут главное, что побочные эффекты выполняются в ожидаемое время. В ленивой модели побочный эффект просто не выполнится, если самое вычисление не используется, а в этом выполнится.
Собственно как и в ленивой модели есть проблема с доступностью данных. Но тут очень просто разместить побочный эффект там где данные уже доступны.
Еще важно, что после такой модели значения становятся вычисленными и структуру данных, рассчитанную таким трудом (в нашем случае AST) можно анализировать обычным императивным кодом. В чисто ленивой модели мы бы это сделать не смогли, так как императивный код уже требовал бы произвести нужные вычисления.
WH>С побочными эффектами ты сильно погорячился.
WH>Эта модель их не допускает.
Очень даже допускает. И я их делал.
Тут главное, что побочные эффекты выполняются в ожидаемое время. В ленивой модели побочный эффект просто не выполнится, если самое вычисление не используется, а в этом выполнится.
Собственно как и в ленивой модели есть проблема с доступностью данных. Но тут очень просто разместить побочный эффект там где данные уже доступны.
Еще важно, что после такой модели значения становятся вычисленными и структуру данных, рассчитанную таким трудом (в нашем случае AST) можно анализировать обычным императивным кодом. В чисто ленивой модели мы бы это сделать не смогли, так как императивный код уже требовал бы произвести нужные вычисления.