Object MethodData and Files

Num.solveMathQuestion(value, decimalPlaces?, answerOnly?)

Solves one line of arithmetic or a linear equation with one unknown. Returns status, value, text and expression. value is an exact integer or fraction (numerator/denominator) for numeric comparison; text is rounded to 0–12 decimal places (default 10). answerOnly=true accepts option labels and does not solve equations. Invalid or ambiguous input returns empty values, without repairing OCR letters into digits. Does not solve word problems or two-dimensional notation.

Documented for app version 1.0.58Updated:

Detailed Explanation

This section explains when to use the API, how to call it, and which structures it works best with in production flow.

How To Call It

Num is a global table: call its functions with a dot (Num.<method>(...)), not a colon.

When To Use It

In data flow, chaining JSON, Regex, Str, Map, and File steps to normalize intermediate values reduces error risk.

Parameters and Return

Required: value. Optional: decimalPlaces, answerOnly (omit to pass nil and use the runtime default). Returns a Lua table.

Best Combined With

When combined with Str, JSON, Regex, Array, Map, and File, data transformation becomes much more readable in script flow.

Example Usage

The snippet below is a starter pattern that can be applied directly in runtime flow.

local answer = Num.solveMathQuestion("2x+3=11", 10)
if answer.status == "success" then System.log(answer.text) end

Copyable Progressive Examples

From foundation to combined usage, each level is provided as a separate code block so you can copy the level you need and adapt it directly.

Foundation

Shows the shortest direct way to call the API.

Foundation
local answer = Num.solveMathQuestion("2x+3=11", 10)
if answer.status == "success" then System.log(answer.text) end

Simple

Wraps the base call with minimal flow control.

Simple
local stepOk = true
local answer = Num.solveMathQuestion("2x+3=11", 10)
if answer.status == "success" then System.log(answer.text) end
if stepOk then
  wait(200)
end

Practical Flow

A practical pattern for real macros with pcall, logging, and guards.

Practical Flow
local ok, err = pcall(function()
  local answer = Num.solveMathQuestion("2x+3=11", 10)
  if answer.status == "success" then System.log(answer.text) end
end)

if not ok then
  print("API step failed: Num.solveMathQuestion: " .. tostring(err))
  requestStop()
end

Detailed

This level packages the API into a reusable helper with error reporting.

Detailed
-- In data flow, chaining JSON, Regex, Str, Map, and File steps to normalize intermediate values reduces error risk.
local function run_solvemathquestion_step()
  local answer = Num.solveMathQuestion("2x+3=11", 10)
  if answer.status == "success" then System.log(answer.text) end
end

local ok, err = pcall(run_solvemathquestion_step)
if not ok then
  toast("Step failed")
  print(err)
end

Combined

Combines the API with related structures to form a more realistic workflow.

Combined
local answer = Num.solveMathQuestion("2x+3=11", 10)
if answer.status == "success" then System.log(answer.text) end
local raw = File.read("macro.log")
local normalized = Str.trim(raw)
print(normalized)