That's because your code assumes those convenience functions exist while the parent's code writes out the anonymous functions.
The direct translation of yours' to Clojure would be:
(filter valid-person? (map init-person names))
Meanwhile, the direct Haskell translation of the parent comment is: filter (\p -> isValid p) (map (\n -> Person n) names)