Four sides of square: Difference between revisions

Content added Content deleted
(→‎{{header|Haskell}}: Added a variant expressed in terms of Data.Matrix)
m (→‎{{header|Haskell}}: Tidied Data.Matrix version)
Line 455: Line 455:


fourSides :: Int -> Matrix Int
fourSides :: Int -> Matrix Int
fourSides n = matrix n n go
fourSides n = matrix n n
(\(i, j) -> (fromEnum . or) ((==) <$> [1, n] <*> [i, j]))
where
go (i, j)
| or ([(== i), (== j)] <*> [1, n]) = 1
| otherwise = 0




--------------------------- TEST -------------------------
--------------------------- TEST -------------------------
main :: IO ()
main :: IO ()
main = mapM_ print $ fourSides <$> [1 .. 5]</syntaxhighlight>
main = mapM_ print $ fourSides <$> [0 .. 5]</syntaxhighlight>
{{Out}}
{{Out}}
<pre>┌
<pre>┌ ┐
└ ┘
┌ ┐
│ 1 │
│ 1 │
└ ┘
└ ┘