Определение функции mconcat:
mconcat :: Monoid a => [a] -> a
mconcat = foldr mappend mempty
Реализация foldr:
template<typename F, typename T>
decltype(auto) foldr(F, T arg) { return arg; }
template<typename F, typename T, typename ...Ts>
decltype(auto) foldr(F f, T init, T head, Ts ...tail)
{
return f(head, foldr(f, init, tail...));
}
Реализация mconcat:
template<typename T, typename ...Ts>
decltype(auto) mconcat(T head, Ts ...tail)
{
return foldr(&mappend<T>, mempty<T>(), head, tail...);
}
Можно ли вместо функции foldr использовать fold-expressions? В описании указан необходимый вариант свертки - правая, с бинарным оператором, однако, я не могу придумать, каким образом можно заменить его на вызов функции mappend, или, наоборот, как реализовать wrapper для mappend так, чтобы его можно было использовать как бинарный оператор.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Используя библиотеки QNetworkReply и QNetworkAccessManager я скачалexe файл, но не понимаю как его открыть
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Столкнулся с непониманием названий имен классов в CSS3Сейчас смотрю видео с версткой, человек задает имя класса: class = "get-started-btn menu-link"