У меня есть следующие типы:создать список из карты через функцию Map.iter в F #
type ColorCounter =
{
Count : int
Color : Microsoft.Xna.Framework.Color
}
let AvailableColors : Map<uint32,ColorCounter> = .....
Я хотел бы перебирать карты и возвращает список. Я написал следующую функцию, которая не компилируется:
let AvailableColorList(map : Map<uint32,ColorCounter>) : List<Microsoft.Xna.Framework.Color> =
let colorSeq = seq {
map |> Map.iter (fun key col -> yield col.Color)
}
colorSeq |> Seq.toList
Я предполагаю, что я делаю что-то неправильно с синтаксисом функции передается ITER, но я не нашел любой подходящий пример, который показывает мне, как сделай это.
Может ли кто-нибудь помочь мне? В чем моя ошибка? Как я могу исправить код выше?
хорошо, спасибо за ответ. Но я до сих пор не понимаю, почему он не компилируется, если я укажу тип возврата AvailableColorList как List. –
Heisenbug
И на самом деле он возвращает список (ColorCounter-> Microsoft.Xna.Framework.Color), а не List. Я ошибаюсь? –
Heisenbug
Если вы хотите 'System.Collection.Generic.List' (который псевдоним как 'ResizeArray ' in F #), вы можете сделать: 'ResizeArray ([для KeyValue (_, col) в map -> col.Color]) ' –
Daniel