Здравствуйте, gyraboo, Вы писали:
G>Функциональный стиль контр-интуитивен, а императивный стиль наоборот — интуитивен. Империтив — это порядок шагов (порядок шагов, чтобы достать банан), это максимально понятный прямолинейный способ.
G>Именно виду контр-интуитивности не все программисты и могут, и это нормально. А функциональщина — это ненормально, это искривление естественного мышления.
Это синдром утёнка. Если бы вас учили в универе на Haskell, а не С++, вы бы сказали иначе.
Вот так думает компьютер.
void sign(const auto& docs) {
for(int i = 0; i < docs.size(); ++i) {
const auto& doc = docs[i];
sign(doc);
}
}
А так думает человек:
signDocuments :: [String] -> [String]
signDocuments [] = []
signDocuments (doc:rest) = sign doc : signDocuments rest
У ФП хватает минусов, но не надо притягивать за уши несуществующие.