Minha sugestão é, não cometa o mesmo erro que a maioria das linguagens comete, + não é concatenação, ao invés de:
"O resultado é: " + resultado
Faça:
"O resultado é: " .. resultado
Outro detalhe (você não comentou) é a escolha por let, essa keyword tem uma sematica restritiva, não é sinônimo de local, local pode ser redeclarado no mesmo bloco, liberando a instância da primeira declaração, let só é liberado automaticamente no final do bloco:
local x = recurso_A()
-- A deve ser liberado na linha
-- abaixo
local x = recurso_B()
Já
let x = recurso_A()
-- A linha abaixo deve gerar
-- um erro de compile time
let x = recurso_B()
Ou seja, local sugere a chamada imediata de liberação de de recursos, let pode guardar até o final