【发布时间】:2023-03-17 10:19:01
【问题描述】:
我有一个 nspire 计算器,在编写了一个哈希表实现后,发现 BASIC 环境是一个非常令人反感的编程环境。不幸的是,据我所知,使用 Lua 编写库是不可能的。
我确实看到在 Lua 接口的某处可以检测到变量更改,因此可能在文件中使用 Lua 函数,但我担心如果在外部使用它会超出范围。
有没有更好的方法来做到这一点?
【问题讨论】:
我有一个 nspire 计算器,在编写了一个哈希表实现后,发现 BASIC 环境是一个非常令人反感的编程环境。不幸的是,据我所知,使用 Lua 编写库是不可能的。
我确实看到在 Lua 接口的某处可以检测到变量更改,因此可能在文件中使用 Lua 函数,但我担心如果在外部使用它会超出范围。
有没有更好的方法来做到这一点?
【问题讨论】:
为 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 函数,并根据其输出进行操作。
【讨论】: