It lets you apply an arbitrary function to a variable or a position anywhere within some structure:
arc> (= flag t)
t
arc> (zap no flag)
nil
arc> flag
nil
arc> (= foo '(1 2 3 4 5))
(1 2 3 4 5)
arc> (zap (fn (x) (* x 10))
(foo 0))
10
arc> foo
(10 2 3 4 5)
BTW, in more idiomatic Arc you'd say (zap [* _ 10] foo.0)
Here's a line in HN that uses it: (zap [firstn votewindow* _] (uvar user votes))
This expands into roughly the equivalent of: (= ((profs* user) 'votes)
(firstn votewindow* ((profs* user) 'votes)))
Not quite, though, because you only want to evaluate the code that gets you to the location once, and the operation needs to be atomic. The actual macroexpansion is much more complicated.