RosettaCodeData/Task/Square-but-not-cube/Haskell/square-but-not-cube-3.hs
2023-07-01 13:44:08 -04:00

18 lines
394 B
Haskell

isCube :: Int -> Bool
isCube =
(==)
<*> ((^ 3) . round . (** (1 / 3)) . fromIntegral)
squares :: Int -> Int -> [Int]
squares m n = (>>= id) (*) <$> [m .. n]
--------------------------- TEST -------------------------
main :: IO ()
main =
(putStrLn . unlines) $
(<>) . show <*> label <$> squares 1 33
label :: Int -> String
label n
| isCube n = " (also cube)"
| otherwise = ""