В функциональном программировании старайтесь избегать построения списков, просматривая данные и элементы в новом списке.Это императивный подход, основанный на изменении общего состояния.
В вашем примере рассмотрите возможность сделать это следующим образом:
let getCoordinates available =
html.Objects
|> Seq.filter (fun item -> item.StatusParkPlace = available)
|> Seq.toList
let main =
let availableList = getCoordinates true
Это все тот же результат, построение одного списка из другой последовательности,Но на этот раз вы позволяете языку заниматься реализацией этого, вы просто предоставляете функцию, которую хотите применить к каждому элементу, для фильтра одного списка в другом.
В приведенном выше примере,Seq.filter
выполнит цикл по html.Objects
и вернет только элементы, которые соответствуют функции, в новую последовательность.Затем он преобразуется в список (предпочтение спискам, а не массивам в F #), в котором будут храниться результаты.Без toList
это было бы просто последовательность все еще.