import Data.List
testMatrix = [[ 1, 2, 3,4],
[12,13,14,5],
[11,16,15,6],
[10, 9, 8,7]]
main = do
let clockwise [] = []
clockwise
(h:t
) = h
++(clockwise
$ reverse $ transpose t
) contraclockwise = clockwise . transpose
print $ zipWith (*) (clockwise testMatrix
) (contraclockwise testMatrix
)
aW1wb3J0IERhdGEuTGlzdAoKdGVzdE1hdHJpeCA6OiBbW0ludF1dCnRlc3RNYXRyaXggPSBbWyAxLCAyLCAzLDRdLAogICAgICAgICAgICAgIFsxMiwxMywxNCw1XSwKICAgICAgICAgICAgICBbMTEsMTYsMTUsNl0sCiAgICAgICAgICAgICAgWzEwLCA5LCA4LDddXQogICAgICAgICAgIAptYWluIDo6IElPICgpCm1haW4gPSBkbwogICAgbGV0IGNsb2Nrd2lzZSBbXSA9IFtdCiAgICAgICAgY2xvY2t3aXNlIChoOnQpID0gaCsrKGNsb2Nrd2lzZSAkIHJldmVyc2UgJCB0cmFuc3Bvc2UgdCkKICAgICAgICBjb250cmFjbG9ja3dpc2UgPSBjbG9ja3dpc2UgLiB0cmFuc3Bvc2UKICAgIHByaW50ICQgemlwV2l0aCAoKikgKGNsb2Nrd2lzZSB0ZXN0TWF0cml4KSAoY29udHJhY2xvY2t3aXNlIHRlc3RNYXRyaXgpCg==
[1,24,33,40,45,48,49,48,45,40,33,24,169,224,225,224]