Thanks
On Monday, 13 January 2014 00:15:17 UTC, John Myles White wrote: > > This is one of the main outstanding quirks about Julia that will get > resolved at some point in the nearish future. > > See https://github.com/JuliaLang/julia/issues/265 for more details. > > — John > > On Jan 12, 2014, at 4:02 PM, Andrew Burrows <[email protected]<javascript:>> > wrote: > > > Hi > > > > I'm rather new to Julia, but I've come across some rather puzzling > behaviour of the language. > > > > The following code works fine and the assert passes: > > > > a(x) = 12345 > > b(x) = a(x) > > a(x::Int64) = 1000 > > @assert b(1)== 1000 > > > > But this near identical code does not, throwing an assertion error: > > > > a(x) = 12345 > > b(x) = a(x) > > b(1) # <----------- This line is new > > a(x::Int64) = 1000 > > @assert b(1)== 1000 > > > > It would seem that the definition of a(x) is being cached but in both > cases this assert passes fine: > > > > @assert a(1) == 1000 > > > > Also this almost identical code works fine: > > > > a(x) = 12345 > > b(x) = a(x) > > a(1) # <----------- This line is now calling a not b > > a(x::Int64) = 1000 > > @assert b(1)== 1000 > > @assert a(1)== 1000 > > > > Is this behaviour a bug or is it by design? Am I doing something wrong > or is there something I can do to disable what ever is caching my method > definition or is there any way to work around it? > > > > Cheers > > Andy > >
