summaryrefslogtreecommitdiff
path: root/src/calculator.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/calculator.hs')
-rw-r--r--src/calculator.hs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/calculator.hs b/src/calculator.hs
new file mode 100644
index 0000000..1da13af
--- /dev/null
+++ b/src/calculator.hs
@@ -0,0 +1,22 @@
+calculate :: String -> Float -> Float -> Float
+calculate operator number1 number2 = case operator of
+ "+" -> number1 + number2
+ "-" -> number1 - number2
+ "/" -> number1 / number2
+ "*" -> number1 * number2
+ _ -> error "invalid operator!"
+
+main :: IO()
+main = do
+ putStr "enter a number: "
+ input<-getLine
+ let number1 = (read input :: Float)
+
+ putStr "enter an operator: "
+ operator<-getLine
+
+ putStr "enter another number: "
+ input<-getLine
+ let number2 = (read input :: Float)
+
+ print (calculate operator number1 number2)