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
which is often nicer than using anonymous function syntax.
Now for the function itself, you don't need a temporary variable to store
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