0

抽象データ型を理解しようとしています。以下のコードでは、抽象データ型の関数を作成することになっています。createMatrixx行とy列の数のタプルといくつかの要素zを取り込んで、その要素で行列を埋めます。

私はHaskellに不慣れで、すべての基本に問題はありませんが、抽象データ型に対してこの関数を実装する方法について非常に混乱しています。

これを行う方法についての提案をいただければ幸いです。

よろしくお願いします!

newType Matrix a = Mat ((Int, Int), (Int,Int) -> a)


createMatrix (x,y) z = 
4

1 に答える 1

1

あなたは

createMatrix (x,y) z = {-TODO-}

明らかな次のステップは

createMatrix (x,y) z = Mat ( {-TODO-} , {-TODO-} )

なぜこれが明白なのですか?

  • 関数はタイプの値を返しますMatrix a; これにはコンストラクターが1つしかないMatので、その値を最初に指定する必要があります。
  • コンストラクターは、単一のMat値、つまりペアを取ります。正しいタイプのペアがないので、1つ作成する必要があります。繰り返しになりますが、コンストラクターは1つしかない( , )ため、これを使用します。

重要なのは、タイプに従うだけでこれを実行したことです(そして、呼び出す準備ができているヘルパー関数がないことを前提としています)。

于 2013-03-16T18:54:05.433 に答える