Macros 调用宏时出错

Macros 调用宏时出错,macros,jupyter-notebook,julia,Macros,Jupyter Notebook,Julia,我的任务是使用宏。 所以我写了这样的东西: macro mean(arr) ex = Expr(:call, :/, 1, arr[1]) for i = 2:length(arr) ex = Expr(:call, :+, ex, Expr(:call, :/, 1, arr[i])) end println(arr[1]) Expr(:call, :/, length(arr), ex) end 然后用4个参数执行 @mean(2,

我的任务是使用宏。 所以我写了这样的东西:

macro mean(arr)
    ex = Expr(:call, :/, 1, arr[1])
    for i = 2:length(arr)
         ex = Expr(:call, :+, ex, Expr(:call, :/, 1, arr[i]))
    end
    println(arr[1])
    Expr(:call, :/, length(arr), ex)
end
然后用4个参数执行

@mean(2,2,5,7)
导致错误的原因:

MethodError: no method matching @mean(::Int64, ::Int64, ::Int64, ::Int64)
所以我的问题来了:什么是错误的,我应该如何纠正?
值得一提的是,这个程序适用于我的朋友,但不适用于我。

这里的问题是,您将值作为多个参数而不是数组插入。您应该执行
@mean([2,2,5,7])

这里的问题是您将值作为多个参数而不是数组插入。您应该执行
@mean([2,2,5,7])

您需要编写
宏平均值(arr…)
。此外,最好检查宏中的
arr
是否为空。您需要写入
macro mean(arr…)
。此外,最好检查宏中的
arr
是否为空。