First, use a docstring instead of a comment:
"""Recursively walk a directory."""
function [ . . . ]
Using a docstring allows Julia's built-in help features to work with your function.
Next, I would recommend putting the function argument first:
function dirwalk(fn::Function, path::AbstractString)
Why? This allows dirwalk
to be used with Julia's do
block syntax:
dirwalk("path/to/file") do p
# do stuff with p, the path
end
which is often nicer than using anonymous function syntax.
Now for the function itself, you don't need a temporary variable to store content
. This:
for c in readdir(path)
is shorter and reads just as well. Inside the loop, things generally look fine (except the order of dirwalk
could be reversed). Note that your implementation ignores symlinks, which are neither directories nor regular files.
As for style, the Julia style guide recommends 4-space indenting. Some projects use 2-space indenting, however, and that is a personal decision.
Finally, you might be interested in the walkdir
function.