"- Calculator -".println
"Type =<num> to set the value to that number.".println
"Type +<num>, -<num> or *<num> to change the value.".println
"Type exit to exit.".println

current := 0.0

{() -> {
  ("[ ", current, " ]").concat.println
  input := ().read_line.trim
  num := (
    (input, 1).substring.trim.parse_float,
    (
      () -> 0.0,
      val -> val
    )
  ).try
  mode := (input, 0, 1).substring
  if (mode, "+").eq {
    &current = (current, num).sum
  } else if (mode, "-").eq {
    &current = (current, (num, -1).product).sum
  } else if (mode, "*").eq {
    &current = (current, num).product
  } else if (mode, "=").eq {
    &current = num
  } else if (input, "exit").eq {
    (())
  }
}}.loop
