Czy możliwe jest dopasowanie do rozłożonych sekwencji w F #?
Wydaje mi się, że pamiętam starszą wersję F #, która pozwala na dekompozycję strukturalną, gdy dopasowuje sekwencje tak jak listy. Czy istnieje sposób na użycie składni listy przy jednoczesnym zachowaniu leniwości sekwencji? Mam nadzieję uniknąć wielu połączeń do Seq.head i Seq.skip 1.
Mam nadzieję na coś takiego:
let decomposable (xs:seq<'a>) =
match xs with
| h :: t -> true
| _ -> false
seq{ 1..100 } |> decomposable
Ale to tylko obsługuje listy i daje błąd typu podczas używania sekwencji. Używając List.of_seq, wydaje się, że ocenia wszystkie elementy w sekwencji, nawet jeśli jest nieskończony.