我正在尝试理解抽象数据类型。在下面的代码中,我应该为抽象数据类型编写一个函数。createMatrix
接受 x 行和 y 列的数量以及一些元素 z 的元组,并用该元素填充矩阵。
我是 Haskell 的新手,对所有基础知识都很好,但对如何为抽象数据类型实现此功能感到非常困惑。
我将非常感谢有关如何执行此操作的任何建议。
提前谢谢了!
newType Matrix a = Mat ((Int, Int), (Int,Int) -> a)
createMatrix (x,y) z =
我正在尝试理解抽象数据类型。在下面的代码中,我应该为抽象数据类型编写一个函数。createMatrix
接受 x 行和 y 列的数量以及一些元素 z 的元组,并用该元素填充矩阵。
我是 Haskell 的新手,对所有基础知识都很好,但对如何为抽象数据类型实现此功能感到非常困惑。
我将非常感谢有关如何执行此操作的任何建议。
提前谢谢了!
newType Matrix a = Mat ((Int, Int), (Int,Int) -> a)
createMatrix (x,y) z =
你已经做到了
createMatrix (x,y) z = {-TODO-}
明显的下一步是
createMatrix (x,y) z = Mat ( {-TODO-} , {-TODO-} )
为什么这应该是显而易见的?
Matrix a
;this 只有一个构造函数,Mat
: 所以这个值必须从这个开始。Mat
函数采用单个值,一对。我们手头没有一对正确的类型,所以我们必须做一个。同样,只有一个构造函数( , )
,所以这就是我们使用的。重要的是,我只是通过遵循类型来完成此操作(并假设您没有准备好调用的任何辅助函数)。