Collect and sort square numbers in ascending order from three lists: Difference between revisions
Content added Content deleted
(→{{header|Ruby}}: Add Ruby) |
(→{{header|haskell}}: Added a version in Haskell) |
||
Line 212: | Line 212: | ||
[4 9 16 25 36 36 49 81 121 144 169] |
[4 9 16 25 36 36 49 81 121 144 169] |
||
</pre> |
</pre> |
||
=={{header|Haskell}}== |
|||
<syntaxhighlight lang="haskell">import Data.List (sort) |
|||
------- PERFECT SQUARE SUBSET OF THREE LISTS SORTED ------ |
|||
squaresSorted :: Integral a => [[a]] -> [a] |
|||
squaresSorted = sort . (filter isPerfectSquare =<<) |
|||
isPerfectSquare :: Integral a => a -> Bool |
|||
isPerfectSquare n = |
|||
let sqr = (floor . sqrt) (fromIntegral n :: Double) |
|||
in n == sqr ^ 2 |
|||
--------------------------- TEST ------------------------- |
|||
main :: IO () |
|||
main = |
|||
print $ |
|||
squaresSorted |
|||
[ [3, 4, 34, 25, 9, 12, 36, 56, 36] |
|||
, [2, 8, 81, 169, 34, 55, 76, 49, 7] |
|||
, [75, 121, 75, 144, 35, 16, 46, 35] |
|||
]</syntaxhighlight> |
|||
{{Out}} |
|||
<pre>[4,9,16,25,36,36,49,81,121,144,169]</pre> |
|||
=={{header|jq}}== |
=={{header|jq}}== |