>
> What does it mean to comvert a method to a expression.
What I was hoping for was to get the implementation of the method back as
an expression, something like:
julia> expr = :(foo(n::Integer) = 2*n)
:(foo(n::Integer) = begin # REPL[2], line 1:
2n
end)
julia> eval(expr)
foo (generic function with 1 method)
julia> method = first(methods(foo))
foo(n::Integer) at REPL[2]:1
julia> Expr(method) == expr # Not reality
true
More than likely it isn't possible. I just figured it was worth asking. A
far more likely scenario would be to get a LambdaInfo as an Expr:
julia> foo(n::Integer) = 2*n
foo (generic function with 1 method)
julia> method = first(methods(foo))
foo(n::Integer) at REPL[1]:1
julia> method.lambda_template
LambdaInfo for foo
:(begin # REPL[1], line 1:
return 2 * n
end)
On Thursday, May 5, 2016 at 3:59:20 PM UTC-5, Yichao Yu wrote:
>
> On Thu, May 5, 2016 at 3:45 PM, Curtis Vogt <[email protected]
> <javascript:>> wrote:
> > I doubt this is possible but is there a way of creating an expression
> from a
> > Method or LambaInfo? Something like:
> >
> > julia> m = first(methods(open, (AbstractString,)))
> > open(fname::AbstractString) at iostream.jl:99
> >
> > julia> Expr(m)
> > ERROR: TypeError: Expr: expected Symbol, got Method
> > in Expr(::Any) at ./boot.jl:270
> > in eval(::Module, ::Any) at ./boot.jl:228
> >
> >
> > I'm running Julia 0.5.0-dev+3898.
>
> What does it mean to comvert a method to a expression.
>