evenLast
"use strict";
// evenLast :: [Number] -> Number
function evenLast(data) {
if (data.length < 1) {
return 0;
} else {
var isEven = function isEven(n) {
if (n === 0) {
return true;
} else if (n === 1) {
return false;
} else {
return isEven(n - 2);
}
};
var filtered = data.filter(isEven);
var sum = filtered.reduce(function(prev, curr) {
return prev + curr;
}, 0);
}
return sum * data[data.length - 1];
}
var assert = require('assert');
var test1 = evenLast([0, 1, 2, 3, 4, 5]);
var test2 = evenLast([1, 3, 5]);
var test3 = evenLast([6]);
var test4 = evenLast([]);
This Gist was automatically created by Carbide, a free online programming environment.