Re[16]: Сильные стороны функционального программирования
От: Gaperton http://gaperton.livejournal.com
Дата: 01.09.04 15:06
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Здравствуйте, Gaperton, Вы писали:


G>>Здравствуйте, Sinclair, Вы писали:


S>>>>>Yield всего лишь облегчает реализацию итераторов, которые и в императивном случае вполне ленивы.

G>>>>Итераторы были-бы ленивыми, если бы значение элемента контейнера вычислялось в момент доступа к нему по итератору, т. е. было отложенным до момента чтения.
S>>>Это так и есть. Не очень понимаю, зачем итератору вычислять элементы в какой-то другой момент.
G>>Не совсем так. Допустим, у тебя одна функция заполняет вектор значений, нетривиально вычисляя каждое значение.

G>Хотя, чтобы добиться такого же эффекта, ты на самом деле можешь фактически обойтись без контейнера, но заставить объект выглядеть снаружи как контейнер. Согласен, в этом смысле итераторы "ленивые".


Хм, но в этом случае ты не получишь автоматического кэширования результатов (что ты имеешь бесплатно с ленивыми типами данных), это придеться делать руками. В общем, сделать "ленивый" контейнер на C# можно, но надо смотреть в оба. Как бы потом не получилось в духе "я тебя породил, я тебя и убью".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.