Seq.windowed
в F # возвращает последовательность, в которой каждое окно внутри является массивом. Есть ли причина, по которой каждое окно возвращается в виде массива (очень конкретный тип), в отличие от другой последовательности или IList<'T>
? Например, IList<'T>
было бы достаточно, если бы цель состояла в том, чтобы сообщить, что элементы окна могут быть случайным образом доступны, но массив говорит о двух вещах: элементы являются изменяемыми и беспорядочно доступными. Если вы можете рационализировать выбор массива, то как windowed
отличается от Seq.groupBy
? Почему этот последний (или операторы в том же духе) не также возвращают члены группы в виде массива?
Мне интересно, просто ли это надзор за дизайном или есть более глубокая контрактная причина для массива?