从TI-BASIC调用Lua

我有一台nspire计算器,在编写哈希表实现后,发现BASIC环境是一种相当糟糕的编程环境。不幸的是,据我所知,使用Lua编写库是不可能的。

我看到Lua界面的某个地方可以检测变量更改,因此可能在文件内部使用Lua函数,但我担心如果在外部使用,它将超出作用域。

有更好的方法吗?

点赞
用户14091631
用户14091631

在 TI-Nspire 上写 Lua 库并不是不可能的。你可以将库的代码放入一个字符串中,将其保存为 TI-Basic 的变量,并将文件放在 MyLibs 文件夹中。然后,当您想要加载库时,可以执行 loadstring(var.recall("libfilename/programstring"))()。这将从该文件中将库的代码作为字符串加载,编译它(使用 loadstring),并执行它(实际上与 require 函数相同)。

此外,关于使用 TI-Basic 控制 Lua 脚本,根据您想要做什么,您可以使用 math.eval("<some TI-Basic code>")。这将在 TI-Basic 中执行代码,并将结果作为 Lua 值(或字符串)返回。这样,您可以每隔一段时间调用 TI-Basic 函数,并根据其输出采取行动。

2021-08-05 07:12:04