2014-03-07 79 views
0

是否有可能通過F#PowerPack矩陣庫創建包裝來創建強類型的矩陣和向量?F中的強類型矩陣#

我的意思是我要存儲的類型本身矩陣/矢量的dimentionality這樣我就可以說

創建一個函數MUL乘2點矩陣與簽名:

mul :: Matrix<float, n, m> -> Matrix<float, m, p> -> Matrix<float, n, p> 

其中Matrix類型的後2個參數表示行數和列數,並且是int s。

回答

2

這裏的問題是,nm是整數的值,而類型參數需要是類型。

一個有點冒失的解決方案將是使用度量類型的高度和寬度。然後,它可以成爲:

mull :: Matrix<float<(H^m)*(W^n)>> -> Matrix<float<H^m*W^p>> -> Matrix<float<H^n,W^p>> 

其中HW是度量類型enccoding高度和寬度分別

[<Measure>] type H 
[<Measure>] type W