Collect and sort square numbers in ascending order from three lists: Difference between revisions

→‎{{header|haskell}}: Added a version in Haskell
(→‎{{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}}==
9,655

edits