Здравствуйте, samius, Вы писали:
S>S>let list = [ for (x = 1 when x % 2 == 0 to 10) x ];
S>
Это тоже самое, что (I%2==0?I)
Ты вот с Take пример приведи, например...
S>Одно по поводу RS я могу сказать однозначно. !перед именем счетчика — это отстой, т.к. при использовании конструкции x..y в выражении (без инициализации переменной) совершенно неясно что использовать, массив, генератор, или счетчик.
Я вообще не уверен, что эти понятия надо различать. Это же всего лишь вопрос оптимизации -- хранить массив или генератор его значений. По идее хорошо бы сделать так, чтобы на основном пути, так сказать, мы это вообще не специфицировали, а оставили бы это дело RS. И только если очень надо, то мы могли бы подсказать, что типа "а этот переборщик, закэшируй таки в массив", или там "мемоизируй постранично, с такими-то страницами", или "мемоизируй на такую-то глубину", или ещё как...
Массив -- это всего лишь отображение пространства индексов на пространство значений. Какая разница, как RS внутри себя будет это отображение задавать?
Тем более, что вполне возможны переборщики, в которых даже пространство индексов не требуется, и порядок перебора не определён, пока какие-то специальные усилия не предпримешь...
Вообще, я вот не совсем согласен с PC_2 вот в каком аспекте. У него сейчас процедурный аспект очень выпячен. Это, IMHO, нехорошо, но сильно удешевляет интерпретатор. Хорошо бы двигаться в таком направлении, чтобы ВАЖНЫЕ вопросы, вроде того ЧТО НАМ НАДО писать коротко и понятно, а всякую процедурщину оставить RS. При этом такая процедурщена, с которой RS обычно сам справляется, может быть записываема сколь угодно криво.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском