Sum of squares: Difference between revisions

m
→‎JS ES6: Tidied.
m (→‎JS ES6: Tidied.)
Line 1,304:
<lang JavaScript>(() => {
'use strict';
 
// squared :: Num a => a -> a
const squared = x => Math.pow(x, 2);
 
// sum :: (Num a) => [a] -> a
const sum = xs => xs.reduce((a, x) => a + x, 0);
 
// sumOfSquares :: Num a => [a] -> a
const sumOfSquares = xs => sum(xs.map(squared));
sum(xs.map(squared));
 
// sumOfSquares2 :: Num a => [a] -> a
Line 1,318 ⟶ 1,313:
xs.reduce((a, x) => a + squared(x), 0);
 
return [sumOfSquares, sumOfSquares2]
.map(f => f([3, 1, 4, 1, 5, 9]))
.join('\n');
})();</lang>
 
// ---------------------- TEST -----------------------
const main = () => [
sumOfSquares,
return [sumOfSquares, sumOfSquares2]
].map(
.map(f => f([3, 1, 4, 1, 5, 9]))
).join('\n');
 
 
// --------------------- GENERIC ---------------------
 
// squared :: Num a => a -> a
const squared = x => Math.pow(x, 2);
Math.pow(x, 2);
 
// sum :: ([Num a) => [a] -> aNum
const sum = xs =>
// The numeric sum of all values in xs.
const sum = xs => xs.reduce((a, x) => a + x, 0);
 
// MAIN ---
return main();
})();</lang>
{{Out}}
<pre>133
9,655

edits