используя функцию eval в математической библиотеке TI-Nspire - PullRequest
3 голосов
/ 25 марта 2019

Я пытаюсь понять, как использовать систему TI-Nspire CAS через Lua. Я пытаюсь подражать solve(x+5/3,x) функциональность, обнаруженная в графическом интерфейсе TI-Nspire CX CAS.

Я просмотрел Документацию по API, найденную здесь: https://education.ti.com/download/en/ed-tech/59108CCE54484B76AF68879C217D47B2/7EFB09CED41C4190AFF8F60283B6727A/TI-NspireLuaScriptingAPIReferenceGuide.pdf

Я считаю, что мне нужна функция eval на стр. 51, хотя я не могу найти в Интернете много примеров. Приведенные примеры не являются конкретными.

math.eval(math_expression) --apilevel = 2.0
math.eval(math_expression, [exact]) --apilevel = 1.0
local expr = "f1("..mx")"
return math.eval(expr)

Я пытался

require "math"
local answer
answer = math.eval("f1(x+3/4,x)")
answer = math.eval(x+3/4,x)
answer = math.eval("5+9")

Я получаю сообщение об ошибке «не могу выполнить во время инициализации».

1) Как исправить ошибку

2) Могу ли я привести несколько конкретных примеров использования функции

Ответы [ 2 ]

1 голос
/ 25 марта 2019

Из Справочного руководства по API сценариев TI-Nspire Lua 12.1 math.eval :

Предупреждение

math.eval недоступен во время инициализации скрипта

Чтобы избежать этой ошибки, не вызывайте функцию перед инициализацией скрипта.

0 голосов
/ 03 апреля 2019

Это работает!

function on.paint(gc)
    local var1
    var1 = math.eval("nsolve(x+4=8,x)")
    gc:drawString(var1, 2, 20)
end
...