2023-10-19 19:38:13 +02:00
|
|
|
"- Calculator -".println
|
|
|
|
"Type =<num> to set the value to that number.".println
|
2023-11-08 15:54:46 +01:00
|
|
|
"Type +<num>, -<num>, *<num> or /<num> to change the value.".println
|
2023-10-19 19:38:13 +02:00
|
|
|
"Type exit to exit.".println
|
|
|
|
|
|
|
|
current := 0.0
|
|
|
|
|
2024-02-22 20:21:11 +01:00
|
|
|
loop {
|
2023-10-19 19:38:13 +02:00
|
|
|
("[ ", current, " ]").concat.println
|
|
|
|
input := ().read_line.trim
|
2024-03-22 16:50:01 +01:00
|
|
|
num := (input, 1).substring.trim.parse_float.try(
|
2024-02-22 20:21:11 +01:00
|
|
|
(val) -> val
|
|
|
|
() -> 0.0
|
2024-03-22 16:50:01 +01:00
|
|
|
)
|
2023-10-27 19:19:42 +02:00
|
|
|
mode := input.substring(0, 1)
|
|
|
|
if mode.eq("+") {
|
2023-10-19 19:38:13 +02:00
|
|
|
¤t = (current, num).sum
|
2023-10-27 19:19:42 +02:00
|
|
|
} else if mode.eq("-") {
|
2023-10-19 19:38:13 +02:00
|
|
|
¤t = (current, (num, -1).product).sum
|
2023-10-27 19:19:42 +02:00
|
|
|
} else if mode.eq("*") {
|
2023-10-19 19:38:13 +02:00
|
|
|
¤t = (current, num).product
|
2023-11-08 15:54:46 +01:00
|
|
|
} else if mode.eq("/") {
|
|
|
|
¤t = (current, num).div
|
2023-10-27 19:19:42 +02:00
|
|
|
} else if mode.eq("=") {
|
2023-10-19 19:38:13 +02:00
|
|
|
¤t = num
|
2023-11-08 15:54:46 +01:00
|
|
|
} else if (input.eq("exit"), input.eq("")).any {
|
2023-10-19 19:38:13 +02:00
|
|
|
(())
|
|
|
|
}
|
2024-02-22 20:21:11 +01:00
|
|
|
}
|