Библиотека функционального программирования для Objective-C
Есть ли библиотека функционального программирования для Objective-C?
Ответы
Ответ 1
Вы можете попробовать FunctionalKit
FunctionalKit - попытка использовать функциональные парадигмы в Objective-C. Это набор низкоуровневых функциональных типов и API. Он содержит такие типы, как опция, и т.д., Которые позволяют писать правильный, чистый, плотный, сжатый и (если возможно) код типа. Он также предоставляет более продвинутые концепции, такие как функции подъема в монады.
FunctionalKit
Ответ 2
Вы также можете попробовать OCTotallyLazy, порт библиотеки Java TotallyLazy.
Например, сопоставление NSArray может быть выполнено следующим образом:
[array(@"one", @"two", @"three", nil) map:^(NSString *item){
return [item uppercaseString];
}];
// Returns array(@"ONE", @"TWO", @"THREE", nil)
Существует также набор доступных макросов, которые позволяют использовать более короткий синтаксис, например:
#define TL_LAMBDA_SHORTHAND
[array(@"one", @"two", @"three", nil) map:_([_ uppercaseString])];
// Returns array(@"ONE", @"TWO", @"THREE", nil)
Он также предоставляет свой собственный тип коллекции, Sequence, который лениво оценивает карты, фильтры и т.д.
Ответ 3
Objective-C не является функциональным языком программирования (это довольно ясно процедурный OO), поэтому я не вижу, как это будет. Если вы ищете поддержку lambdas и concurrency, то, что для Grand Central Dispatch в 10.6.
Ответ 4
Вы можете использовать Functional.m для функционального программирования в Objective-C. Он интенсивно использует блоки и содержит ваши обычные подозрения в функциональном программировании, такие как карта, сокращение, фильтрация, отклонение и т.д.
Ответ 5
Я большой поклонник underscore.m.