summaryrefslogtreecommitdiff
path: root/src/calculator.hs
diff options
context:
space:
mode:
authorseth <[email protected]>2023-07-03 23:54:18 -0400
committerseth <[email protected]>2023-07-04 00:05:04 -0400
commit369eb89ea18250bad1b3ef73280b7683ee1c6f93 (patch)
tree8cc728a4db0e6431b5320295e0ddbdd9a6ab1d2b /src/calculator.hs
initial commitHEADmain
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)