This also works:
julia> function foo(x, y; make_plot::Bool=false)
# ...
if make_plot
@eval using Gadfly
plot(x = x, y = y, Geom.line)
end
# ...
end
foo (generic function with 1 method)
julia> x = -π:0.1:π; foo(x, sin(x))
julia> x = -π:0.1:π; foo(x, sin(x), make_plot = true)
julia>
El martes, 4 de agosto de 2015, 12:26:58 (UTC-5), Felipe Jiménez escribió:
>
> I've written a function, fwhm, that goes fast without plotting anything
> (which is the usual usage).
> But if one optional argument is dodraw = true, it draws a figure to
> visualize its doings.
> To draw the figure it uses the package Gadfly. But "using Gadfly" takes
> time to execute (the first time), and most of the sessions it is not needed
> because by default dodraw = false.
> Since I cannot do "using Gadfly" inside a function, I cannot do something
> like this:
>
> function fwhm(xk, yk; dodraw::Bool=false)
> # ...
>
> if dodraw
> using Gadfly
> plot(x=xk, y=yk) # etc.
> end
>
> # ...
> end
>
> I don't want to add overhead time to every session I use the module where
> fwhm is, because most of the times dodraw = false and I just need a fast
> result without figures.
> Any idea?
> Thank you in advance.
>