Томас уже дает хороший ответ. Я немного прокомментирую здесь.
Давайте посмотрим некоторый исходный код в matrix.fsi из PowerPack:
type matrix = Matrix<float>
поэтому матрица - это конкретный тип, созданный из мета-типа Matrix. Вы также можете использовать
type intmatrix = Matrix<int>
чтобы определить тип вашей матрицы int.
но использовать что-то вроде:
let B = matrix [ [ 1.0; 7.0 ];
[ 1.0; 3.0 ] ]
Нам нужна еще одна функция, называемая матрицей, замедление которой равно
val matrix : seq<#seq<float>> -> matrix
посмотрим его реализацию в matrix.fs:
let matrix ll = Microsoft.FSharp.Math.Matrix.ofSeq ll
в то время как модуль Microsoft.FSharp.Math.Matrix предназначен для двойной (в f # float) матрицы, Microsoft.FSharp.Math.Matrix.Generics - для общей матрицы Вы можете реализовать свой intmatrix 'constructor'.
собрать это вместе:
type intmatrix = Matrix<int>
let intmatrix ll = Matrix.Generic.ofSeq ll
let C = intmatrix [ [1;2]; [3;4] ];