如何1
使用给定的行数和列数创建一个基于列表的矩阵?例如,像:
row=3,column=4 -> [[1,1,1,1],[1,1,1,1],[1,1,1,1]]
如何1
使用给定的行数和列数创建一个基于列表的矩阵?例如,像:
row=3,column=4 -> [[1,1,1,1],[1,1,1,1],[1,1,1,1]]
这是使用列表理解的另一种方法。让我们看一下基础知识:
Prelude> [ 2*x | x <- [1..4] ]
[2,4,6,8]
这样就为列表中的每个元素提供了一个数字[1..4]
。为什么不,而不是加倍x
,只是有一个1
:
Prelude> [ 1 | x <- [1..4] ]
[1,1,1,1]
如果我们想要其中三个,我们可以使用相同的技巧:
Prelude> [ [1|x<-[1..4]] | x<-[1..3] ]
[[1,1,1,1],[1,1,1,1],[1,1,1,1]]
因此我们可以定义
twoDlist r c = [ [1|x<-[1..c]] | x<-[1..r] ]
这使
Prelude> twoDlist 3 4
[[1,1,1,1],[1,1,1,1],[1,1,1,1]]
你可以这样做replicate
:
onesMatrix rows cols = replicate rows (replicate cols 1)
import Control.Applicative
import Data.Functor
matrix r c = [1] <* [1..c] <$ [1..r]