- 中置演算子の定義。演算優先度を整数で指定する。中置演算子は ( ) でくくると、通常の演算子
module TAMO
where
someFuncTAMO :: IO ()
someFuncTAMO = putStrLn "TAMO"
infix 1 ==>
(==>) :: Bool -> Bool -> Bool
x ==> y = (not x) || y
という定義でもよい
-}
infix 1 <=>
(<=>) :: Bool -> Bool -> Bool
x <=> y = x == y
infixr 2 <+>
(<+>) :: Bool -> Bool -> Bool
x <+> y = x /= y
p = True
q = False
formula1 = (not p) && ( p ==> q ) <=> not ( q && ( not p))
formula2 p q = ((not p) && ( p ==> q ) <=> not ( q && ( not p)))
solveQdr' :: (Float, Float, Float) -> (Float, Float)
solveQdr' (a, b, c) | a == 0 = error "not quadratic"
| b^2 - 4 * a * c < 0 = error "no real solutions"
| otherwise = (( - b + sqrt d) / (2 * a), (- b - sqrt d) / (2 * a)) where d = b^2 - 4 * a * c
solveQdr :: (Float, Float, Float) -> (Float, Float)
solveQdr = \ (a, b, c) ->
let d = b^2 - 4 * a * c
in
if a == 0
then error "not quadratic"
else
if d < 0
then error "no real solutions"
else (( - b + sqrt d) / (2 * a), (- b - sqrt d) / (2 * a))