20 lines
392 B
JavaScript
20 lines
392 B
JavaScript
(() => {
|
|
'use strict';
|
|
|
|
// powerset :: [a] -> [[a]]
|
|
const powerset = xs =>
|
|
xs.reduceRight((a, x) => [...a, ...a.map(y => [x, ...y])], [
|
|
[]
|
|
]);
|
|
|
|
|
|
// TEST
|
|
return {
|
|
'[1,2,3] ->': powerset([1, 2, 3]),
|
|
'empty set ->': powerset([]),
|
|
'set which contains only the empty set ->': powerset([
|
|
[]
|
|
])
|
|
};
|
|
})()
|