From 9dae90cfdc1a4cb5f42e9a533a2277a3904b629f Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Fri, 28 Jul 2023 20:52:03 -0230 Subject: exponentiation operator --- calculator.go | 3 +++ ui.go | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/calculator.go b/calculator.go index d2371b7..fb1fc90 100644 --- a/calculator.go +++ b/calculator.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "math" "strconv" ) @@ -58,6 +59,8 @@ func parseOp(op byte) (func(lhs *float64, rhs float64), error) { *lhs = float64(int64(*lhs) % int64(rhs)) } }, nil + case '^': + return func(lhs *float64, rhs float64) { *lhs = math.Pow(*lhs, rhs) }, nil } return nil, OpError{op} } diff --git a/ui.go b/ui.go index 5996a9c..aedaa6c 100644 --- a/ui.go +++ b/ui.go @@ -37,7 +37,7 @@ func (ui UI) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg.String() { case "ctrl+c", "Q": return ui, tea.Quit - case "+", "-", "*", "/", "%": + case "+", "-", "*", "/", "%", "^": if err := ui.calc.performOp(msg.String()[0]); err != nil { panic(err) } -- cgit v1.2.3