I\'m still new to functional programming so if I can\'t figure out how to do something I revert back to procedural style. I found a way to get around having to convert to a
Apparently in .Net, multi-dimensional arrays are IEnumerable (non-generic), and thus this works:
let a2 = Array2.init 2 3 (fun x y -> (x+1)*(y+1))
let l = a2 |> Seq.cast<int> |> Seq.fold (fun l n -> n :: l) []
printfn "%A" l
EDIT: As Noldorin points out in a comment, this is even better:
let l = a2 |> Seq.cast<int> |> Seq.toList