Можно ли сопоставить с разложенными последовательностями в F #?

Кажется, я помню более старую версию F #, допускающую структурную декомпозицию при сопоставлении последовательностей, как списки. Есть ли способ использовать синтаксис списка при сохранении последовательности ленивым? Я надеюсь избежать множества обращений к Seq.head и Seq.skip 1.

Я надеюсь на что-то вроде:

let decomposable (xs:seq<'a>) =
   match xs with
   | h :: t -> true
   | _ -> false
seq{ 1..100 } |> decomposable

Но это только обрабатывает списки и выдает ошибку типа при использовании последовательностей. При использовании List.of_seq кажется, что он оценивает все элементы в последовательности, даже если она бесконечна.

Ответы на вопрос(3)

Ваш ответ на вопрос