Не ясно, с чем именно вы боретесь. Однако следующий простой пример должен иллюстрировать большинство ключевых идей, которые вам, вероятно, нужно использовать. Во-первых, вот небольшая версия вашего Account
класса (обратите внимание, что я обычно использовал бы неизменную запись, но я сохранил ее так, как вы это сделали):
type Account(balance:float) =
let mutable balance = balance
member x.Balance = balance
member x.Add(difference) =
balance <- balance + difference
Я не вижу, в чем проблема у вас есть с созданием списка. Следующее прекрасно работает:
let acc1 = Account(100.0)
let acc2 = Account(10.0)
let accountList = [acc1; acc2]
Теперь, чтобы ответить на вопрос о поиске счетов с балансом более 50, вы можете использовать функцию List.filter
для создания нового отфильтрованного списка:
let above50 =
accountList |> List.filter (fun acc ->
acc.Balance > 50.0)
РЕДАКТИРОВАТЬ Если вы хотите использовать вместо этого запись, вы должны определить тип как:
type Account = { Balance : float }
И создать значение, используя:
let acc1 = { Balance = 100.0 }