There might be, but it would involve a pretty un-Julian approach to metaprogramming. What’s the reason you need to use eval? Could you use a macro instead?
— John On Jul 1, 2014, at 10:23 PM, Cameron Smith <[email protected]> wrote: > thanks. is there a function other than eval that would enable evaluation of a > string or symbol to result in a call to a nested function? > > On Wednesday, July 2, 2014 1:17:07 AM UTC-4, John Myles White wrote: > eval always happens in the global scope > > — John > > On Jul 1, 2014, at 10:15 PM, Cameron Smith <[email protected]> wrote: > >> Can anyone explain what I am misunderstanding about scope such that >> >> julia> function foo() >> foo2(x) = println(x) >> foo2(1); eval(parse("foo2(2)")); >> end >> foo (generic function with 1 method) >> >> >> julia> foo() >> 1 >> ERROR: foo2 not defined >> in foo at none:3 >> >> is not the same as >> >> julia> function foo() >> foo2(x) = println(x) >> foo2(1); foo2(2); >> end >> foo (generic function with 1 method) >> >> >> julia> foo() >> 1 >> 2 >> >> given, of course, that >> >> julia> foo2(x) = println(x) >> foo2 (generic function with 1 method) >> >> >> julia> eval(parse("foo2(1)")) >> 1 >> >
