The second solution seems to be more efficient. Isn’t it.
@time b = foo(1:100) #first one
0.000023 seconds (1 allocation: 896 bytes)
@time b = foo(1:100) #second one
0.000008 seconds (1 allocation: 896 bytes)
The second solution seems to be more efficient. Isn’t it.
@time b = foo(1:100) #first one
0.000023 seconds (1 allocation: 896 bytes)
@time b = foo(1:100) #second one
0.000008 seconds (1 allocation: 896 bytes)
There should be no difference, or at most a negligible difference.
Recall that to compute times, either use @time
and execute the function at least twice (the first run is always polluted by compilation time). But to do serious benchmarks, use the package BenchmarkTools
and @btime
. This computes multiple times the calculation to provide a more accurate benchmark.
Something I find extremely useful for reading files: eachline I/O and Network · The Julia Language
Also note that reverse
needs to be qualified as Iterators.reverse
in recent Julia versions.
Edit: Note however that reverse
will not work with eachline
, unlike Iterators.reverse
.
Updated in the article.
For h. - see also Why are there all these strange stumbling blocks in Julia? - #67 by Eben60
e.g.
function retMultipleValues()
v1,v2 = "India","Iran"
return (; v1,v2)
end
Also, you might want to link this thread: Seven Lines of Julia (examples sought)
That doesn’t sound right. You might mean that Iterators.reverse
knows how to reverse eachline
iterators in recent Julia versions. reverse
from Base
has never known how to do that.
Yes, that’s right, my bad
Now updated to include around 21 recipes. Please give feedback on items 11-21.