Tôi đã có thể nghĩ điều này sẽ làm việc:Làm cách nào để xác định macro julia xác định macro?
macro meta_meta(x,y)
:(macro $x(arg) :($($y) + $arg) end)
end
Các hành vi mong đợi được mà gọi @meta_meta(f,2)
nên tương đương với macro f(arg) :(2 + $arg) end
Nói cách khác:
julia> @meta_meta(f,2)
julia> @f(3)
5
Thay vào đó tôi nhận được:
ERROR: syntax: invalid macro definition
Tôi đang mất một chút tiền để tiến hành. Tôi thấy rằng cây biểu thức cho macro này khác với cái tôi nhận được nếu tôi tạo thủ công @f và kiểm tra cây biểu thức của nó và tôi đã thử một vài lần lặp của @meta_meta, nhưng tôi không thể tìm ra cách thay đổi định nghĩa của mình thành làm cho nó hoạt động.
Sử dụng điều này như một ví dụ: https://discourse.julialang.org/t/def-macro-generator-broken-on-master/1096/3? U = chrisrackauckas. Bạn có thể cần phải thoát khỏi cái gì đó. –
Cảm ơn con trỏ! Điều đó sẽ làm các trick. Tôi sẽ thử điều đó khi tôi có cơ hội để tìm ra. – HaberdashPI