reb*_*ebo 14

你可以试试FunctionalKit

FunctionalKit试图在Objective-C中使用功能范例.它是一组低级功能类型和API.它包含诸如选项等类型,允许您编写正确,干净,紧凑,简洁和(如果可能)类型安全代码.它还提供了更高级的概念,例如将函数提升为monad.

FunctionalKit

  • 试试FunctionalKit的Blocks分支.我还编写了一个系统来在运行时自动包装Option类型中的任何操作,我将很快发布.块和运行时badassery使FunctionalKit成为一个非常有用的工具,我在最近的两个iPhone应用程序中广泛使用了它. (2认同)

Stu*_*ine 9

您还可以尝试OCTotallyLazy,它是Java库TotallyLazy的一个端口.

例如,映射NSArray可以按如下方式完成:

[array(@"one", @"two", @"three", nil) map:^(NSString *item){
  return [item uppercaseString];
}];

// Returns array(@"ONE", @"TWO", @"THREE", nil)
Run Code Online (Sandbox Code Playgroud)

还有一组可用的宏,允许更短的语法,例如:

#define TL_LAMBDA_SHORTHAND
[array(@"one", @"two", @"three", nil) map:_([_ uppercaseString])];

// Returns array(@"ONE", @"TWO", @"THREE", nil)
Run Code Online (Sandbox Code Playgroud)

它还提供了自己的集合类型Sequence,它可以懒惰地评估地图,过滤器等.