Collect and sort square numbers in ascending order from three lists: Difference between revisions
Collect and sort square numbers in ascending order from three lists (view source)
Revision as of 22:25, 5 December 2022
, 1 year ago→{{header|haskell}}: Added a version in Haskell
(→{{header|Ruby}}: Add Ruby) |
(→{{header|haskell}}: Added a version in Haskell) |
||
Line 212:
[4 9 16 25 36 36 49 81 121 144 169]
</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}}==
|