4

入力として整数の 2 次元配列 (9 x 9) を受け取り、その内容を後で出力する関数を F# で作成しようとしています。次のコードは、私が行ったことを示しています。

let printMatrix matrix=
    for i in 0 .. 8 do
        for j in 0 .. 8 do
            printf "%d " matrix.[i,j]
        printf "\n"

問題は、F# が行列の型を自動的に推測せず、次のエラーが表示されることです。型制約をさらに追加することを検討してください」 .

関数の定義で型注釈を使用しようとしましたが、間違っていたと思います。この問題をどのように克服できるか考えていますか?

4

2 に答える 2

6

に変更します

let printMatrix (matrix:int [,])=
    for i in 0 .. 8 do
        for j in 0 .. 8 do
            printf "%d " matrix.[i,j]
        printf "\n"

これは、F# の型侵害アルゴリズムがどのように機能するかによるものです。

于 2013-05-04T07:55:17.717 に答える