hsc3-0.21: Sound/Sc3/Ugen/Constant.hs
-- | Constant
module Sound.Sc3.Ugen.Constant where
import Sound.Sc3.Ugen.Brackets {- hsc3 -}
{- | Constants.
Constants may have brackets.
This allows for buffer allocation and deallocation to be associated with a buffer identifier.
>>> Constant 3 emptyBrackets == Constant 3 emptyBrackets
True
>>> Constant 3 emptyBrackets > Constant 1 emptyBrackets
True
-}
data Constant = Constant
{ constantValue :: Double
, constantBrackets :: Brackets
}
deriving (Ord, Eq, Read, Show)
-- | Get fractional part of a double.
fractionPart :: Double -> Double
fractionPart = snd . (properFraction :: Double -> (Integer, Double))
{- | Is integer?
>>> constantIsInteger (Constant 1 emptyBrackets)
True
-}
constantIsInteger :: Constant -> Bool
constantIsInteger (Constant n _) = fractionPart n == 0