Categories for functional programming in Objective-C