Power set: Difference between revisions

Adding code snippet for Obj-C
(Forth version added)
(Adding code snippet for Obj-C)
Line 971:
version for lists:
<lang ocaml>let subsets xs = List.fold_right (fun x rest -> rest @ List.map (fun ys -> x::ys) rest) xs [[]]</lang>
 
=={{header|Obj-C}}==
<lang obj-c>
#import <Foundation/Foundation.h>
 
+ (NSArray *)powerSetForArray:(NSArray *)array {
UInt32 subsetCount = (UInt32)exp2(array.count);
NSMutableArray *subsets = [NSMutableArray arrayWithCapacity:subsetCount];
for(int subsetIndex = 0; subsetIndex < subsetCount; subsetIndex++) {
NSMutableArray *subset = [[NSMutableArray alloc] init];
for (int itemIndex = 0; itemIndex < array.count; itemIndex++) {
if((subsetIndex >> itemIndex) & 0x1) {
[subset addObject:[array objectAtIndex:itemIndex]];
}
}
[subsets insertObject:subset atIndex:subsetIndex];
[subset release];
}
return subsets;
}
</lang>
 
=={{header|Oz}}==
Anonymous user