March 2014 update
This commit is contained in:
parent
09687c4926
commit
a25938f123
1846 changed files with 21876 additions and 5203 deletions
5
Task/Flatten-a-list/JavaScript/flatten-a-list-1.js
Normal file
5
Task/Flatten-a-list/JavaScript/flatten-a-list-1.js
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
function flatten(list) {
|
||||
return list.reduce(function (acc, val) {
|
||||
return acc.concat(val.constructor === Array ? flatten(val) : val);
|
||||
}, []);
|
||||
}
|
||||
5
Task/Flatten-a-list/JavaScript/flatten-a-list-2.js
Normal file
5
Task/Flatten-a-list/JavaScript/flatten-a-list-2.js
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
let flatten = list => {
|
||||
return list.reduce(
|
||||
(a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []
|
||||
);
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
function flatten(arr){
|
||||
return arr.reduce(function(acc, val){
|
||||
return acc.concat(val.constructor === Array ? flatten(val) : val);
|
||||
},[]);
|
||||
}
|
||||
5
Task/Flatten-a-list/Maple/flatten-a-list-1.maple
Normal file
5
Task/Flatten-a-list/Maple/flatten-a-list-1.maple
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
L := [[1], 2, [[3,4], 5], [[[]]], [[[6]]], 7, 8, []]:
|
||||
|
||||
with(ListTools):
|
||||
|
||||
Flatten(L);
|
||||
7
Task/Flatten-a-list/Maple/flatten-a-list-2.maple
Normal file
7
Task/Flatten-a-list/Maple/flatten-a-list-2.maple
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
flatten := proc(x)
|
||||
`if`(type(x,'list'),seq(procname(i),i = x),x);
|
||||
end proc:
|
||||
|
||||
L := [[1], 2, [[3,4], 5], [[[]]], [[[6]]], 7, 8, []]:
|
||||
|
||||
[flatten(L)];
|
||||
40
Task/Flatten-a-list/Objective-C/flatten-a-list.m
Normal file
40
Task/Flatten-a-list/Objective-C/flatten-a-list.m
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface NSArray (FlattenExt)
|
||||
@property (nonatomic, readonly) NSArray *flattened;
|
||||
@end
|
||||
|
||||
@implementation NSArray (FlattenExt)
|
||||
-(NSArray *) flattened {
|
||||
NSMutableArray *flattened = [[NSMutableArray alloc] initWithCapacity:self.count];
|
||||
|
||||
for (id object in self) {
|
||||
if ([object isKindOfClass:[NSArray class]])
|
||||
[flattened addObjectsFromArray:((NSArray *)object).flattened];
|
||||
else
|
||||
[flattened addObject:object];
|
||||
}
|
||||
|
||||
return [flattened autorelease];
|
||||
}
|
||||
@end
|
||||
|
||||
int main() {
|
||||
@autoreleasepool {
|
||||
NSArray *p = @[
|
||||
@[ @1 ],
|
||||
@2,
|
||||
@[ @[@3, @4], @5],
|
||||
@[ @[ @[ ] ] ],
|
||||
@[ @[ @[ @6 ] ] ],
|
||||
@7,
|
||||
@8,
|
||||
@[ ] ];
|
||||
|
||||
for (id object in unflattened.flattened)
|
||||
NSLog(@"%@", object);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
list = translate (list, ' ', '[]' );
|
||||
list = '[' || list || ']';
|
||||
|
||||
|
||||
|
||||
/* the above will erroneously return:
|
||||
|
||||
[ 1 , 2, 3,4 , 5 , , 6 , 7, 8, ]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*REXX program demonstrates how to flatten a list. */
|
||||
/*REXX pgm demonstrates how to flatten a list (it need not be numeric).*/
|
||||
y = '[[1], 2, [[3,4], 5], [[[]]], [[[6]]], 7, 8, []]'
|
||||
z = '['changestr(' ', space( translate(y, , '[,]')), ", ")']'
|
||||
z = '['changestr(" ", space( translate(y, , '[,]')), ", ")']'
|
||||
say ' input =' y
|
||||
say 'output =' z
|
||||
/*stick a fork in it, we're done.*/
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
/*REXX program demonstrates how to flatten a list. */
|
||||
/*REXX pgm demonstrates how to flatten a list (it need not be numeric).*/
|
||||
y = '[[1], 2, [[3,4], 5], [[[]]], [[[6]]], 7, 8, []]'
|
||||
|
||||
z = translate( y, ,'[,]' ) /*change brackets&commas──►blanks*/
|
||||
z = space(z) /*remove extraneous blanks. */
|
||||
z = changestr( ' ', z, ", " ) /*change blanks to "comma blank".*/
|
||||
z = '[' || z || "]" /*add brackets via concatenation.*/
|
||||
|
||||
/*another version of above: */
|
||||
z = '['z"]"
|
||||
say ' input =' y
|
||||
say 'output =' z
|
||||
/*stick a fork in it, we're done.*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue