Пример в контексте JavaScript:
Процедурный стиль:
const array = ['first', 'second'];
let output;
function allOdd(words) {
let result = true;
for (let i = 0; i < words.length; ++i) {
const len = words[i].length;
if (len % 2 !== 0) {
result = false;
break;
}
}
return result;
}
output = allOdd(array);
alert(output);
Функциональный стиль:
function length(string) {
return prop('length', string);
}
function odd(number) {
return equals(modulus(number, 2), 0);
}
function allOdd(...words) {
return every(compose(odd, length), words);
}
alert(allOdd('first', 'second'));
Реализации
prop,
modulus,
equals,
every и
compose оставлены за кадром. Думаю, из их названия легко понять какой результат они возвращают.