Отчасти это может зависеть от того, как именно вы хотите использовать все это сквозное.
Во многих случаях будет хорошо преобразовать в список один раз, а затем использовать только операторы List для отображения / перемещения / и т.д. Может не быть List.take
, но это потому, что со списками, если вы знаете, что будет по крайней мере два элемента, и вы хотите получить эти два элемента, вы можете сделать это с помощью сопоставления с образцом, например,
let (item1::item2::rest) = someList
Так что я подозреваю, что это может быть то, что вы хотите сделать в этом сценарии (я ожидаю, что при разборе HTML у вас может быть какая-то ожидаемая грубая схема элементов, которые вы ищете, и т.
(Если лень / потоковая передача необходимы, то Seq становится намного более полезным.)
Вкратце, наиболее распространенные операторы (например, map
) есть во всех типах коллекций (Seq
, List
, Array
, ...), тогда как не столь распространенные (например, take
) доступны на Seq, часто потому что есть лучшие способы сделать что-то, когда у вас есть конкретный тип (например, сопоставление с шаблоном списка, чтобы взять первые элементы).