0 people like it.
    Like the snippet!
  
  Intersperse an array
  Imperative and fast implementation of an intersperse function for array.
if you search for a functional implemenation you should look [here](http://www.fssnip.net/7S3/title/Intersperse-a-list).
  
 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
  | 
module Array =
    /// <summary>
    /// The intersperse function takes an element and an array and
    /// 'intersperses' that element between the elements of the array.
    /// </summary>
    /// <exception cref="System.ArgumentNullException"/>
    let intersperse sep (array: 'a array) =
        if isNull array then nullArg "arr"
        elif array.Length = 0 then [||]
        else
            let interspersedArray = Array.zeroCreate ((array.Length * 2) - 1)
            for i = 0 to array.Length - 1 do
                let j = i * 2
                interspersedArray.[j] <- array.[i]
                if (j < interspersedArray.Length - 1) then
                    interspersedArray.[j + 1] <- sep
            interspersedArray
  | 
Example
1: 
2: 
3: 
4: 
  | 
Array.intersperse 0 [|1..10|]
// throws a null arg exception, like any other Array module func
Array.intersperse 0 null
  | 
module Array
from Microsoft.FSharp.Collections
val intersperse : sep:'a -> array:'a array -> 'a []
Full name: Script.Array.intersperse
 <summary>
 The intersperse function takes an element and an array and
 'intersperses' that element between the elements of the array.
 </summary>
 <exception cref="System.ArgumentNullException"/>
val sep : 'a
Multiple items
val array : 'a array
--------------------
type 'T array = 'T []
Full name: Microsoft.FSharp.Core.array<_>
val isNull : value:'T -> bool (requires 'T : null)
Full name: Microsoft.FSharp.Core.Operators.isNull
val nullArg : argumentName:string -> 'T
Full name: Microsoft.FSharp.Core.Operators.nullArg
property System.Array.Length: int
val interspersedArray : 'a []
val zeroCreate : count:int -> 'T []
Full name: Microsoft.FSharp.Collections.Array.zeroCreate
val i : int
val j : int
Multiple items
module Array
from Script
--------------------
module Array
from Microsoft.FSharp.Collections
  
  
  More information