私はいくつかのxyzプログラムを書いて、スクリーンに何かを印刷します。無関係です。このコードでは、印刷したいものと関係のない行を削除すると、エラーが発生することがわかりました。私はタイプはどのように決定されますか?
let maxprod = maximum $ map maximum $ map (\f -> f inArray limit listLen) [horizontal,vertical,rightDiag,leftDiag]
行を削除する場合
ここimport Data.Array
horizontal inArray limit listLen = [ findProd i j | i<-[1..limit], j<-[1..(limit - listLen)]]
where
findProd a b = product [ inArray!(a,b+k) | k<-[0..(listLen-1)] ]
vertical inArray limit listLen = [ findProd i j | i<-[1..(limit-listLen)], j<-[1..limit]]
where
findProd a b = product [ inArray!(a+k,b) | k<-[0..(listLen-1)] ]
rightDiag inArray limit listLen = [ findProd i j | i<-[1..(limit - listLen)], j<-[1..(limit - listLen)] ]
where
findProd a b = product [ inArray!(a+k,b+k) | k<-[0..(listLen-1)] ]
leftDiag inArray limit listLen= [ findProd i j | i <-[1..(limit - listLen)],j<-[listLen..limit] ]
where
findProd a b = product [ inArray!(a+k,b-k) | k<-[0..(listLen-1)] ]
solve = do
x <- readFile "matrix.txt"
let limit = 20
let listLen = 4
let inArray = listArray ((1,1),(limit,limit)) $ (map read (words x))
let maxprod = maximum $ map maximum $ map (\f -> f inArray limit listLen) [horizontal,vertical,rightDiag,leftDiag]
print inArray
私はコンパイルエラーを取得しています。どうやって?それは私が印刷したいものにさえ関連していません。
質問にコンパイルエラーを追加できますか? –