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