Four sides of square: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) (Added 11l) |
(→{{header|Haskell}}: Added a variant expressed in terms of Data.Matrix) |
||
Line 425: | Line 425: | ||
putStrLn $ intercalate "\n\n" $ map square sizes</syntaxhighlight> |
putStrLn $ intercalate "\n\n" $ map square sizes</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
⚫ | |||
<pre> |
|||
⚫ | |||
Line 447: | Line 446: | ||
1 0 0 0 1 |
1 0 0 0 1 |
||
1 0 0 0 1 |
1 0 0 0 1 |
||
1 1 1 1 1 |
1 1 1 1 1</pre> |
||
</pre> |
|||
Or, expressed in terms of Data.Matrix: |
|||
<syntaxhighlight lang="haskell">import Data.Matrix |
|||
------------------ FOUR SIDES OF A SQUARE ---------------- |
|||
fourSides :: Int -> Matrix Int |
|||
fourSides n = matrix n n go |
|||
where |
|||
go (i, j) |
|||
| or ([(== i), (== j)] <*> [1, n]) = 1 |
|||
| otherwise = 0 |
|||
--------------------------- TEST ------------------------- |
|||
main :: IO () |
|||
main = mapM_ print $ fourSides <$> [1 .. 5]</syntaxhighlight> |
|||
{{Out}} |
|||
<pre>┌ ┐ |
|||
│ 1 │ |
|||
└ ┘ |
|||
┌ ┐ |
|||
│ 1 1 │ |
|||
│ 1 1 │ |
|||
└ ┘ |
|||
┌ ┐ |
|||
│ 1 1 1 │ |
|||
│ 1 0 1 │ |
|||
│ 1 1 1 │ |
|||
└ ┘ |
|||
┌ ┐ |
|||
│ 1 1 1 1 │ |
|||
│ 1 0 0 1 │ |
|||
│ 1 0 0 1 │ |
|||
│ 1 1 1 1 │ |
|||
└ ┘ |
|||
┌ ┐ |
|||
│ 1 1 1 1 1 │ |
|||
│ 1 0 0 0 1 │ |
|||
│ 1 0 0 0 1 │ |
|||
│ 1 0 0 0 1 │ |
|||
│ 1 1 1 1 1 │ |
|||
└ ┘</pre> |
|||
=={{header|J}}== |
=={{header|J}}== |