2015-07-16 3 views
1

Я слышал о библиотеке Lua или функции math.eval:Как использовать команду Lua math.eval

http://wiki.inspired-lua.org/index.php?title=math.eval&setlang=fr

У меня есть сообщение об ошибке:

! Ошибка LuaTeX ./Calcul.lua:11: попытка вызвать поле 'eval' (значение nil) stack traceback: ./Calcul.lua:11: в функции 'NbRandom' [\ directlua]: 1: main кусок. \ Calculs код ... ^^ @ - \ п \ directlua {NbRandom()}

, когда я пытаюсь использовать его как это:

Nb = math.eval("3-7+8") 

Что я пропустил?

ответ

4

В верхней части страницы вы связаны между собой:

math.eval является расширением математической библиотеки.

Это было представлено в TI-Nspire OS 3.0 (Изменения).

Это не основная функция lua. Он специфичен для TI-Nspire OS 3.0+.

Это, как говорится, я не уверен, что я понимаю, почему эта функция существует даже после того, как loadstring, похоже, разрешает такую ​​же вещь.

loca val=loadstring("return 3-7+8")() 
+0

Хорошо, это не команда lua. Я попробовал 'dostring (« 3-7 + 8 »)' и имел '! LuaTeX ошибка ./Calcul.lua:11: попытка вызвать глобальную 'dostring' (нилъ значение) стек отслеживающий: \t ./Calcul.lua:11: в функции 'NbRandom' \t [\ directlua]: 1: в основном куске. \ Calculs code ... ^^ @ - \ par \ directlua {NbRandom()} '. Я не нашел объяснений по этой команде. Я видел «loadstring»? – Tarass

+1

Извините, да, 'loadstring'. Я всегда забываю, что у C api есть 'luaL_dostring', но нет функции lua' dostring'. Попробуйте 'val = loadstring (« return 3-7 + 8 »)()' –

+1

Я считаю, что TI-Nspire использует специальную функцию, позволяющую распознавать гораздо более богатый набор математических функций, доступных в калькуляторе, но недоступных в чистом Lua. – tonypdmtr

Смежные вопросы