2016-04-18 3 views
-3

私はhaskellでかなり新しいです。私たちの仕事は、正方行列の次元を計算するアルゴリズムを書くことです。しかし、私たちはリストを使うべきではありません。しかし、私はそのように与えられた行列の各要素にアクセスする方法を知らない:この例では、リストなしで行列の要素にアクセスする方法はありますか?

matrixA 1 1 = 0 
matrixA 1 2 = 42 
matrixA 1 3 = 1337 
matrixA 2 1 = 501 
matrixA 2 2 = 314 
matrixA 2 3 = 301 
matrixA 3 1 = 13 
matrixA 3 2 = 161 
matrixA 3 3 = 271 
matrixA _ _ = -1 

答えて

2

は、行と列のijで行列の要素にアクセスするには、単にmatrixA i jを使用することができます。実際には、matrixAは両方のインデックスを行列要素にマッピングする関数です。

最後の-1は、 "行列外のインデックス"を意味する無効な値を表していると思います。だから、それはあなたが-1を得るまで、より大きい、より大きい行/列インデックスを持つ行列を照会するだけのサイズを見つけるように思えます。これを解決するための基本的な方法は、再帰的に進めることです。