summaryrefslogtreecommitdiff
path: root/Haskell-book/09/src/SquareCube.purs
blob: 6316b4d5d10e89e94f43383540f037b95d821271 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
module SquareCube where

import Control.MonadZero (guard)
import Data.Array ((..))
import Data.Int (pow)
import Data.Tuple (Tuple(..))
import Prelude

mySqr :: Array Int
mySqr = do
  x <- 1 .. 5
  pure $ pow x 2

myCube :: Array Int
myCube = do
  y <- 1 .. 5
  pure $ pow y 3

mySqrCube :: Array (Tuple Int Int)
mySqrCube = do
  x <- mySqr
  y <- myCube
  guard $ x < 50
  guard $ y < 50
  pure $ Tuple x y