I am trying to convert some Python to F#, specifically numpy.random.randn.
The function takes a variable number of int arguments and returns arrays of different dim
You are correct - an array of floats float[]
is a different type than array of arrays of floats
float[][]
or 2D array of floats float[,]
and so you cannot write a function that returns one or the other depending on the input argument.
If you wanted to do something like the Python's rand
, you could write an overloaded method:
type Random() =
static let rnd = System.Random()
static member Rand(n) = [| for i in 1 .. n -> rnd.NextDouble() |]
static member Rand(n1, n2) = [| for i in 1 .. n1 -> Random.Rand(n2) |]
static member Rand(n1, n2, n3) = [| for i in 1 .. n1 -> Random.Rand(n2, n3) |]