为什么Lua交互解释器不再允许我输入内容了?

我正在编写一个程序来查找数据集的标准差。我没有一个合适的 Lua 编辑器,所以我从交互式解释器中测试所有内容。

在下面的代码中,直到我进入 diffsqrd 函数,一切似乎都正常。在我调用这个函数之后,解释器停止让我输入任何东西。我不得不关闭它并重新开始。我已经测试过这个函数本身,没有它之前的代码,它可以正常工作。

我尝试将整个文件保存为 .lua 文件,并使用 dofile 运行它,但它做了同样的事情。我什么也没有得到,然后我再也不能在解释器中输入任何内容了。发生了什么事?

--一个函数以查看文件是否存在
function file_exists(file)
    local f=io.open(file, "r")
    if f then f:close() end
    return f ~= nil
end

--从文件中获取所有行,如果文件不存在,则返回一个空的
--列表/表

function lines_from(file)
    if not file_exists(file) then return {} end
    lines = {}
    for line in io.lines(file) do
        lines[#lines + 1] = line
    end
    return lines
end

--将 .rec 文件放入数组中

y_positions=lines_from([[Z:\Octupole stuff\programming\y_p_test.rec]])

--用于查找数组的标准差的函数。
--总数,平均数,差的平方。我在这里停止,因为这是
--引起问题所需的最小代码。

function total(a)
    local sum=0
        for i,v in ipairs(a) do sum = sum + v
    end
    return sum
end

function average(a)

        if #a==0 then mean=0
        else mean=total(a)/#a
    end
    return mean
end

function diffsqrd(a)
    local diff={}
    for i in ipairs(a) do
        diff[i]=(a[i]-average(a))^2
    end
    return diff
end

--在 .rec 文件上使用 diffsqrd 函数。

yd=diffsqrd(y_positions)
print(yd[1])
点赞