1 people like it.

Flat Array2D 'a [,] -> 'a array

Flat a 2 dimensional array in a one dimension array 'a [,] -> 'a array

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
let array2DFlat (arr:'a [,]) =
    let rec array2DFlat (arr:'a [,]) i (acc:'a array) =
        match  Array2D.length1 arr with 
        | x when i = x -> acc
        | _ -> array2DFlat arr (i + 1) 
                           acc 
                           |> Array.append arr.[i, 0..(Array2D.length2 arr - 1)]
    array2DFlat arr 0 [||]
val array2DFlat : arr:'a [,] -> 'a array

Full name: Script.array2DFlat
val arr : 'a [,]
val array2DFlat : ('a [,] -> int -> 'a array -> 'a array)
val i : int
val acc : 'a array
type 'T array = 'T []

Full name: Microsoft.FSharp.Core.array<_>
module Array2D

from Microsoft.FSharp.Collections
val length1 : array:'T [,] -> int

Full name: Microsoft.FSharp.Collections.Array2D.length1
val x : int
module Array

from Microsoft.FSharp.Collections
val append : array1:'T [] -> array2:'T [] -> 'T []

Full name: Microsoft.FSharp.Collections.Array.append
val length2 : array:'T [,] -> int

Full name: Microsoft.FSharp.Collections.Array2D.length2

More information

Link:http://fssnip.net/oo
Posted:10 years ago
Author:
Tags: array2d , array